Я хотел бы разместить круговое UIImageView с масонством. Таким образом, я создал UIImageView, как это:Autolayout (с масонством) с угловым радиусом
[self.imageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self.mas_centerX);
make.top.equalTo(self.mas_top).with.offset([[UIView ub_padding] floatValue]);
make.bottom.equalTo(self.descriptionLabel.mas_top).with.offset(-[[UIView ub_padding] floatValue]);
make.height.equalTo(self.descriptionLabel.mas_height).priorityHigh();
make.width.equalTo(self.imageView.mas_height);
}];
Затем я создал ограничения для ImageView
[self.imageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self.mas_centerX);
make.top.equalTo(self.mas_top).with.offset([[UIView ub_padding] floatValue]);
make.bottom.equalTo(self.descriptionLabel.mas_top).with.offset(-[[UIView ub_padding] floatValue]);
make.height.equalTo(self.descriptionLabel.mas_height).priorityHigh();
make.width.equalTo(self.imageView.mas_height);
}];
тогда я попытался бы эти ограничения применяются, а затем установите радиус угла.
[self setNeedsUpdateConstraints];
[self updateConstraintsIfNeeded];
[self layoutIfNeeded];
self.imageView.layer.cornerRadius = self.imageView.frame.size.width/2;
Но кадр self.imageView
еще не установлен (но это получить позже заложено, когда я его просмотр на тренажере). Какой метод вызывается при выполнении макета?
Вы ищете метод '- (void) viewDidLayoutSubviews'? Он вызывается каждый раз, когда контроллер просмотра выполняет макет. – Armin
Я не знаю масонство. Вот почему я не пишу это как ответ. Очевидно, у вас есть доступ к объекту UIImageView и его слою. Вы устанавливаете 'self.imageView.layer.maskksToBounds = YES;'? –
Я заметил это, но я надеялся, что у UIView будет такой метод ... – babaloo