追加制約を使用してテーブル内のセルの外観をカスタマイズしようとしています。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:属性:乗数:定数:]:制約は、リーディング/末尾の属性の間で行うことができません右/左属性を含む。両方の場合、またはどちらも使用しない場合は、先頭/末尾を使用します。
エラーメッセージは非常に明確です。両方の属性がNSLayoutAttributeLeadingで、両方の属性がNSLayoutAttributeTrailingであるように両方の属性が同じになるように変更してください。 – dan
はい。ありがとうございました。これが機能するには、属性の制約が同じでなければなりません。 – harrybob