Удаление фонового изображения в UIImageView во время выполнения - PullRequest
4 голосов
/ 14 июня 2009

У меня есть шар, назначенный для UIImageView в Интерфейсном Разработчике. IBOutlet из UIImageView связан с соответствующим UIViewController. Изображение имеет белый фон. Когда я назначаю его UIImageView в IB, фон прозрачен. В IB у меня UIImageView установлен на прозрачный фон и аспект заливки.

Когда я назначаю UIImageView изображение во время выполнения:

self.ball.image = ballImage; //ballImage is a UIImage
self.ball.backgroundColor = [UIColor clearColor];
self.ball.contentMode = UIViewContentModeScaleAspectFill;

квадрат UIImageView имеет белый фон, где шар не отображается. Имея в виду все четыре угла. Какая разница, что версия IB не показывает белый фон во время выполнения, а программная версия показывает?

Ответы [ 2 ]

6 голосов
/ 14 июня 2009

Убедитесь, что вы установили self.ball.opaque = NO; в дополнение к настройке цвета фона для очистки. В противном случае белый фон все равно будет нарисован. Я полагаю, что вы должны установить оба этих параметра независимо от того, используете ли вы IB или Xcode для создания представления, но IB, возможно, установил их оба для вас.

2 голосов
/ 14 июня 2009

Если вам нужно удалить фон программно, вы можете обратиться к руководству «Растровые изображения и маски изображений» . У меня нет другой идеи по этому вопросу ... просто используя CGImageCreateWithMaskingColors.

В случае, если ваш * .PNG (или любой файл графического ресурса) не имеет встроенной прозрачности (только белый фон), но с IB он выглядит прозрачным - может иметь свойство alpha меньше 1 для вашего UIImageView, и вы видите частично прозрачное изображение.

...