2009-06-13 7 views
4

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

Когда я назначить UIImageView съемки изображения во время выполнения:

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

ответ

6

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

+0

Спасибо за оба предложения. Моя вина. Была PNG-версия JPG, которая имела прозрачные фоны. IB использовал PNG, когда я использовал программные средства JPG. Тьфу! Однако, если изображение не имеет прозрачного фона, вы не можете сделать это легко. Непрозрачность этого не меняет. Я также попытался установить непрозрачность, включив рамки Quartz и self.ball.layer.opacity = 0.0f; но больше не идти. Изменение изображения - самый простой маршрут. – 4thSpace

2

Если вам необходимо удалить фон программно, вы можете обратиться к руководству "Bitmap Images and Image Masks". У меня нет другой идеи по этому поводу ... просто используя CGImageCreateWithMaskingColors.

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

 Смежные вопросы

  • Нет связанных вопросов^_^