Чтобы предварять этот вопрос, я новичок в Objective-C и Xcode. Я учился всего неделю или около того, но я застрял на этой проблеме в течение нескольких дней. Я пытаюсь отобразить изображение в UIButton. У меня есть 3 варианта на выбор: blue.png, purple.png и orange.png. Независимо от того, что я делаю или какое изображение я говорю использовать Xcode, он будет отображать только синее изображение. Я полностью удалил изображение из проекта. У меня в симуляторе iOS есть «сбросить контент и настройки». Что именно здесь происходит?

Код .h

IBOutlet UIButton *h1;

Код the.m

UIImage *buttonImage = [UIImage imageNamed:@"purple.png"];
[h1 setImage:buttonImage forState:UIControlStateNormal];
[self.view addSubview:h1];

Независимо от того, какое изображение я указываю в кавычках, он всегда использует blue.png, даже если изображение больше не существует в проекте. Всем спасибо за помощь!

0
Sev 14 Апр 2014 в 19:05

2 ответа

Лучший ответ

Вы должны установить blue.png в качестве фонового изображения в файле раскадровки или xib. Напишите NSLog (@ "% @", buttonImage), чтобы убедиться, что изображение не равно нулю. Убедитесь, что вы вводите правильное имя и расширение purple.png

А также используйте

[h1 setBackgroundImage:buttonImage forState:UIControlStateNormal];

Вместо setImage

2
Khawar Ali 14 Апр 2014 в 15:11

Думаю, прежде всего вы должны знать разницу между button.image и button.backgroundImage.

Используя поле Image (currentImage), вы можете указать изображение, которое будет отображаться в содержимом вашей кнопки. Если у кнопки есть заголовок, это изображение появляется слева от нее, а в противном случае - по центру.

Поле Background (currentBackgroundImage) позволяет указать изображение, которое будет отображаться за содержимым кнопки и заполнять весь фрейм кнопки.

Таким образом, вы можете использовать setImage или setBackgroundImage по своему усмотрению.

1
andyleehao 14 Апр 2014 в 15:28