У меня есть класс, который инициализируется сначала без набора кадров - ClassA ниже. Экземпляр ClassA НЕ устанавливается с автозапуском. Это кадр устанавливается вручную позже. Тем не менее, я хочу, чтобы subview ClassA был автоматически выложен. Проблема в том, что я не могу найти правильный способ сделать это. Если я попытаюсь установить ограничения перед вызовом layoutSubview (перед установкой рамки), ограничения не будут проверяться. Если я попытаюсь настроить их после вызова Super в layoutSubviews, я получаю этоiOS - Пытаюсь установить Autolayout на subviews в layoutSubviews
Автомакет по-прежнему требуется после выполнения -layoutSubviews. Реализация GHTExerciseSetView -layoutSubviews требует вызова super.
Если я попытаюсь установить ограничения после вызова Супер (что не кажется правильным в любом случае), похоже, это работает сначала, но когда я начинаю добавлять дополнительные экземпляры ClassA и перерисовки, у меня возникают больше проблем с ограничения не проверяются. Главный вопрос - это то, что является правильным способом представления макетов таким образом. Благодарю.
@interface ClassA()
@property (nonatomic, strong) SubView1 *sub1;
@property (nonatomic, strong) SubView2 *sub2;
@end
@implementation ClassA
//this is called initially with no frame
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
sub1 = [[SubView1 alloc] init];
sub1.translatesAutoresizingMaskIntoConstraints = NO;
[self addSubView:sub1];
//Same for sub2
}
return self;
}
- (void)layoutSubViews {
[super layoutSubViews];
}
- (void)updateConstraints {
[super updateConstraints];
//sub1 and sub2 constraints
}
Можете ли вы показать, как должно выглядеть представление с ограниченными подзонами. то есть, как должны быть размещены подпрограммы и т. д. ... – Fogmeister