Раньше я сгенерировал программу с помощью кода, и у меня есть суперкласс, у которого есть фоновое изображение все время. Но теперь я меняю свое кодирование на использование XIB, как я могу вставить представление после загрузки Nib? Но я не хочу, чтобы все мои XIB имели представление. Благодарю.Как добавить представление после загрузки ниба?
ответ
awakeFromNib - это правильный способ использования. Вы не хотите скрывать представления, просто добавляя subview. Вместо этого добавьте подвью.
- (void)awakeFromNib
{
UIView *targetView;
UIView *viewToInsert = [self pointerToViewToInsert];
for (UIView *aSubview in self.view.subviews){
if ([aSubview isEqual:self.someView]){
targetView = aSubview;
break;
}
}
if (targetView){
int targetIndex = [self.view.subviews indexOfObject:targetView];
[self.view insertSubview:viewToInsert atIndex:targetIndex];
}
-(void)awakeFromNib {
[view addSubview:newView];
}
Выполняется после загрузки XIB, но я хотел бы иметь что-то перед загрузкой XIB. Например, у меня есть кнопка. В awakeFromNib, я использую добавить метку, ярлык находится поверх кнопки, но я хочу, чтобы метка находилась под кнопкой. – DNB5brims
В этом вопросе задается вопрос о том, как вставить представление после загрузки NIB. Вы не можете добавить subview в представление, которое еще не загружено. – QED
Вы можете просто добавить элементы в другом порядке @TedWong. Добавьте метку, затем кнопку. Whala, они в том порядке, в котором вы хотите. – sasquatch
Рад узнать, что * кто-то может ему помочь – QED
Цикл for может быть опущен в большинстве случаев. Поместите его туда, чтобы показать, как получить индекс подвью, соответствующий определенным критериям. – Thomas