创建宽度等于表视图分隔符宽度

时间:2017-02-09 20:01:36

标签: ios cocoa uiview autolayout

我正在创建一个用自定义视图填充的表格视图单元格。我希望视图宽度与表视图的分隔符插入相同(默认情况下文本单元格看起来像)。我的代码看起来像这样:

- (id) initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
    self.preservesSuperviewLayoutMargins = true;
    self.contentView.preservesSuperviewLayoutMargins = true;

    myInnerView = [[MyInnerView alloc] initWithFrame:CGRectZero];

    [self.contentView addConstraint:[NSLayoutConstraint 
    constraintWithItem:myInnerView 
    attribute:NSLayoutAttributeCenterX
    relatedBy:NSLayoutRelationEqual
    toItem:self.contentView
    attribute:NSLayoutAttributeCenter:
    multiplier:1.0f constant:0.f]];

    [self.contentView addConstraint:[NSLayoutConstraint 
    constraintWithItem:myInnerView
    attribute:NSLayoutAttributeWidth
    relatedBy:NSLayoutRelationEqual
    toItem:self.contentView
    attribute:NSLayoutAttributeWidth
    multiplier:1.0f constant:0.f]];

    // some vertical constraints here
    }
return self;
};        

但是这给了我一个视图,它完全填满整个屏幕,而不仅仅是内部部分。有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

分隔符的位置基于readableLayoutGuide

而是相对于centerXwidth进行布局,您希望相对于readableLayoutGuide leadingreadableLayoutGuide trailing进行布局。