Я создал UIImageView
с помощью Interface Bulder. Теперь я хочу разместить в нем ярлык (как его подзаголовок). В коде я могу напечатать что-то вроде: [myUIImageView addSubview:myUILabel];
Но могу ли я сделать это с помощью IB? Я нашел решение для UIView
, но не могу найти что-то подобное для UIImageView
.
Apple Interface Builder: добавление subview в UIImageView
Ответ 1
Вы не можете добавить subview в UIImageView в построителе интерфейса по причинам, известным только Apple! Вы правы, говоря, что вы можете addSubview программно, но тогда накладные расходы на установку авторезистирующих масок и мест размещения подзапросов должны обрабатываться в коде, что является громоздким.
Итак, есть простой способ. Вместо того, чтобы перетаскивать экземпляр UIImageView в nib, просто перетащите UIView и измените его класс на UIImageView из UIView (опция cmd + 4 инспектор). Единственное отличие, которое вы обнаружите в nib для экземпляра imageView по умолчанию и вашего нового подкласса UIImageView: вы не можете установить изображение в новое изображениеView из nib (опция cmd + 1). Таким образом, в методе -viewDidLoad
своего соответствующего viewController установите изображение на этот выход UIImageView.
Таким образом, вы можете добавлять субвью в свои экземпляры "теперь UIImageView" в построителе интерфейса, что очень просто.
Надеюсь, это поможет.,.
Ответ 2
Я хотел бы добавить ответ.
Пока он отстой, вы не можете добавить subview в UIImageView
, вы можете получить тот же эффект, включив UIView
с прозрачным (четким цветом) фон.
Затем поместите UIImageView
ДО этого.
Таким образом, UIView
имеет подзоны, а UIImageView
является фоном UIView
.
Я думаю, что намерение яблока.
Вот скриншот:
Вот результат:
Не забудьте установить фон как чистый цвет
Теперь, если бы кто-то действительно мог указать мне на учебник, как это сделать, это будет здорово. Я потратил несколько часов на это, проверив ответ. Проверенный ответ - прекрасный ответ, но очень неинтуитивный, потому что вы не можете четко видеть свое фоновое изображение во время работы. Я считаю, что это правильный способ сделать это.
Ответ 3
В последнем XCode (4.5) есть возможность перетащить необходимые элементы управления родительскому элементу.
Это довольно легко.
Прикрепленный снимок экрана для него. Я перетащил Label/TextField и Button в UIImageView
Ответ 4
Используйте этот код:
UIImage *image = [UIImage imageNamed:@"background.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
[self.view insertSubview:imageView atIndex:0];
(замените background.png на изображение) (замените atIndex: 0 тем местом, в котором находится корень .index, вы хотите вставить изображение и выкл.