0
私のアプリケーションのUITableViewControllerのcellForRowAtIndexPath:
メソッドでは、プログラムのUIViewを各セルのcell.contentViewの最後に固定する必要があります。ここに私のコードです:UIViewをセルの一番下に固定する制約を取得するcontentView
separatorLineView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320,15)];
separatorLineView.tag = 17;
separatorLineView.backgroundColor = [UIColor colorWithHexString:@"F0F5F7"];
[cell.contentView addSubview:separatorLineView];
[self.separatorLineView setTranslatesAutoresizingMaskIntoConstraints:NO];
NSDictionary* views = NSDictionaryOfVariableBindings(separatorLineView);
NSString *format = @"V:[separatorLineView]-|";
positionYConstraint = [NSLayoutConstraint constraintsWithVisualFormat:format
options:0
metrics:nil
views:views];
heightConstraint = [NSLayoutConstraint constraintWithItem:postSeparatorLineView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:cell.contentView
attribute:NSLayoutAttributeHeight
multiplier:0.01
constant:15];
[cell.contentView addConstraints:positionYConstraint];
[cell.contentView addConstraint:heightConstraint];
[cell.contentView layoutSubviews];
setTranslatesAuto...:NO
ラインIがいなくても、ビューデバッガで、separatorLineViewを見ることができないでそれを実行しています。私がその行をコメントアウトすると、separatorLineViewはcell.contentViewの一番上に設定されます。
本質的にすべて私はコードを実行する必要がありますseparatorLineView
を各セルのcontentViewの一番下に固定します - 動的セル高さを覚えておいてください。
これは正解です。ありがとう、魅力のように働いた。 – Chisx
ようこそ@Chisx。自分のケースで「(== 15)」と「 - 」を使用しない理由を理解するには、この文書を確認してください:https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/ VisualFormatLanguage.html – ghashi