Apple Interface Builder: добавление подвида в UIImageView


Я создал UIImageView с помощью интерфейса Bulder. Теперь я хочу разместить метку внутри него (как его подвида). В коде я могу ввести что-то вроде: [myUIImageView addSubview:myUILabel]; но могу ли я сделать это с помощью IB? Я нашел решение для UIView, но не могу найти что-то похожее на UIImageView.

4 54

4 ответа:

вы не можете добавить подвид в UIImageView в interface builder по причинам, известным только Apple! Вы правы, говоря, что вы можете добавить subview программно, но тогда накладные расходы на установку авторезистивных масок и размещение подвидов должны обрабатываться в коде, что является громоздким.

таким образом, есть простой обходной путь. Вместо того, чтобы перетаскивать экземпляр UIImageView в nib, просто перетащите UIView и измените его класс на UIImageView из UIView (опция cmd+4 инспектор.) Единственное отличие, которое вы найдете в nib для экземпляра imageView по умолчанию и вашего нового экземпляра подкласса UIImageView: вы не можете установить изображение в свой новый imageView из nib (опция cmd+1). Итак, в -viewDidLoad метод его соответствующего viewController, установите изображение на этот выход UIImageView.

таким образом, вы можете добавлять вложенные представления в свои экземпляры "now UIImageView" в interface builder, что намного проще.

надеюсь, что это помогает . . .

Я хотел бы добавить ответ.

в то время как это отстой вы не можете добавить подвида в UIImageView, вы можете получить тот же эффект путем включения UIView с прозрачным (ясным цветом) фоном.

поставить UIImageview перед этим.

так UIView имеет подвиды и UIImageview на фоне UIView.

Я думаю, что это намерение apple.

вот скриншот:

enter image description here

здесь результат:

enter image description here

не забудьте установить фон как прозрачный цвет

enter image description here

теперь, если кто-то может мне точку в учебник, как это сделать, это будет здорово. Я потратил часы, делая это проверенным ответным способом. Проверенный ответ-это прекрасный ответ, но очень неинтуитивный, потому что вы не можете ясно видеть свое фоновое изображение во время работы. Я думаю, что это правильный способ сделать это.

в последнем XCode (4.5)есть возможность перетащить необходимые элементы управления к родителю.

Это довольно легко. Прилагается снимок экрана для того же. Я перетащил метку / текстовое поле и кнопку в UIImageViewenter image description here

используйте этот код:

UIImage *image = [UIImage imageNamed:@"background.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
[self.view insertSubview:imageView atIndex:0];

(вместо фон.png с изображением) (замените atIndex:0 С каким бы то ни было местом .корневой индекс вы хотите вставить изображение и ваш.