2017-02-09 4 views
0

Я создаю ячейку представления таблицы, которую заполняю с помощью пользовательского представления. Я хотел бы, чтобы ширина представления была такой же, как и разделительная вставка в виде таблицы (как и текстовая ячейка по умолчанию). Мой код выглядит так:Создать представление с шириной, равной ширине разделителя табличного представления

- (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

Сепаратор расположен на основе readableLayoutGuide.

Вместо идти выложив относительно centerX и width, вы хотите, чтобы макет по отношению к readableLayoutGuideleading и readableLayoutGuidetrailing.

+0

Отлично, спасибо. Для записи вам нужно написать '.. toItem: self.contentView.readableContentGuide' – Reveclair

Смежные вопросы