2016-04-11 9 views
0

追加制約を使用してテーブル内のセルの外観をカスタマイズしようとしています。storyboard with UITableViewcell - テーブルビューセルの外観をカスタマイズする

The current image of the code without adding constraints

私はそれがすべてのシナリオのために自動配置を与えるように制約を追加しようとしています。 以下はtexフィールドのdefです。以下は

UITextField *txt = [[UITextField alloc] initWithFrame:CGRectMake(0, 7, 170, 22)]; 
txt.placeholder = @"Welcome"; 
txt.font = kFontSize16; 
txt.autocorrectionType = UITextAutocorrectionTypeNo; 
txt.returnKeyType = UIReturnKeyNext; 
txt.translatesAutoresizingMaskIntoConstraints = NO; 
txt.delegate = self; 
txt.textColor = kColorDeviceListStatusLabel; 
txt.keyboardType = UIKeyboardTypeDecimalPad; 
self.txthello = txt; 

のUITableViewCellのDEFである:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:nil]; 
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil]; 
cell.textLabel.font = myfont; 

cell.textLabel.highlightedTextColor = [UIColor whiteColor]; 
cell.textLabel.text = @"From:"; 
cell.contentView addSubview:self.txthello]; 
NSLog(@"working till here"); 

[cell.contentView addConstraint:[NSLayoutConstraint constraintWithItem:self.txtIPStart 
                    attribute:NSLayoutAttributeLeading 
                    relatedBy:NSLayoutRelationEqual 
                    toItem: cell.contentView 
                    attribute:NSLayoutAttributeLeft 
                    multiplier:1.0 
                    constant:90.0]]; 

NSLog(@" the log is not displayed here."); 
[cell.contentView addConstraint:[NSLayoutConstraint constraintWithItem:self.txtIPStart 
                    attribute:NSLayoutAttributeTrailing 
                    relatedBy:NSLayoutRelationEqual 
                     toItem:cell.contentView 
                    attribute:NSLayoutAttributeRight 
                    multiplier:1.0 
                     constant:-50.0]]; 
return cell; 

私がシミュレート何らかの理由について、それはセクションtoItemで失敗:cell.contentView

エラーがスレッド1であります:シグナルを中止する 原因を特定できません。

ありがとうございます。

更新: 以下はスタッククラッシュです。

0 tableSample     0x0000000101f61bd7 -[SettingViewController layoutView] + 55 
1 tableSample     0x0000000101f6864c -[SettingViewController viewDidLoad] + 76 
2 tableSample     0x000000010200c80e __47+[UIViewController(Hooks) swizzle_viewDidLoad:]_block_invoke + 69 
3 UIKit        0x00000001030e3931 -[UIViewController loadViewIfRequired] + 1344 
4 UIKit        0x0000000103126c26 -[UINavigationController _layoutViewController:] + 54 
5 UIKit        0x00000001031274dd -[UINavigationController _updateScrollViewFromViewController:toViewController:] + 433 
6 UIKit        0x0000000103127633 -[UINavigationController _startTransition:fromViewController:toViewController:] + 116 
7 UIKit        0x0000000103128879 -[UINavigationController _startDeferredTransitionIfNeeded:] + 890 
8 UIKit        0x000000010312967d -[UINavigationController __viewWillLayoutSubviews] + 57 
9 UIKit        0x00000001032c163d -[UILayoutContainerView layoutSubviews] + 248 
10 UIKit        0x000000010300911c -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 710 
11 QuartzCore       0x000000010276036a -[CALayer layoutSublayers] + 146 
12 QuartzCore       0x0000000102754bd0 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 366 
13 QuartzCore       0x0000000102754a4e _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 24 
14 QuartzCore       0x00000001027491d5 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 277 
15 QuartzCore       0x00000001027769f0 _ZN2CA11Transaction6commitEv + 508 
16 UIKit        0x0000000102f8253a _afterCACommitHandler + 174 
17 CoreFoundation      0x0000000104fa79d7 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23 
18 CoreFoundation      0x0000000104fa7947 __CFRunLoopDoObservers + 391 
19 CoreFoundation      0x0000000104f9d59b __CFRunLoopRun + 1147 
20 CoreFoundation      0x0000000104f9ce98 CFRunLoopRunSpecific + 488 
21 GraphicsServices     0x0000000106196ad2 GSEventRunModal + 161 
22 UIKit        0x0000000102f58676 UIApplicationMain + 171 
23 tableSample     0x0000000101fba91f main + 111 
24 libdyld.dylib      0x000000010584192d start + 1 

アップデート2: こんにちは...キャッチされた例外*** + [NSLayoutConstraint constraintWithItem:属性:relatedBy:toItem:属性:乗数:定数:]:制約は、リーディング/末尾の属性の間で行うことができません右/左属性を含む。両方の場合、またはどちらも使用しない場合は、先頭/末尾を使用します。

+0

エラーメッセージは非常に明確です。両方の属性がNSLayoutAttributeLeadingで、両方の属性がNSLayoutAttributeTrailingであるように両方の属性が同じになるように変更してください。 – dan

+0

はい。ありがとうございました。これが機能するには、属性の制約が同じでなければなりません。 – harrybob

答えて

0

コードから制約を設定する場合、setTranslatesAutoresizingMaskIntoConstraintsNOに設定する必要があります。

[centerView setTranslatesAutoresizingMaskIntoConstraints:NO]; 

希望すると、これが役に立ちます。 :)

+0

それは私にとってはうまくいかなかった。それでも同じ問題。 – harrybob

+0

tableViewの制約はありますか? UIを休んでいれば? – Lion

+0

ここを確認http://stackoverflow.com/questions/19132908/auto-layout-constraints-issue-on-ios7-in-uitableviewcell –

関連する問題