Я определил пользовательское представление в файле NIB и хотел бы создать экземпляр в StoryBoard, но у меня возникли проблемы с автозапуском.
В простом примере пользовательский вид имеет единую метку с фиксированным размером и центрирован как по вертикали, так и по горизонтали, все используют автозапуск.
Владелец файла установлен в мой класс, он имеет выход к верхнему виду. В реализации пользовательского представления я делаю:
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if(self)
{
[[NSBundle mainBundle] loadNibNamed:@"FMCompassView" owner:self options:nil];
[self addSubview:self.topView];
}
return self;
}
Теперь, в моей раскадровке, я добавляю UIView, устанавливаю его класс в свой собственный класс и макет его размера и сосредоточен на моей странице, снова используя автозапуск.
И мой виджет позиционируется и размер правильно, но его содержимое не изменяется, как показано ниже:
Я попробовал добавить дополнительные ограничения после загрузки из NIB, что-то вроде строк:
UIView* subV = self.topView;
NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(subV);
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[subV]|" options:NSLayoutFormatAlignAllBaseline metrics:nil views:viewsDictionary]];
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[subV]|" options:NSLayoutFormatAlignAllBaseline metrics:nil views:viewsDictionary]];
Но это приводит к неверным ограничениям компоновки.
Любые идеи о том, как заставить это работать?
Ура!