Как мне установить изображение UIView UIImageView на фон? - PullRequest
0 голосов
/ 28 июня 2011

У меня есть пользовательское представление, для которого я (в XIB) создал UIImageView в качестве подпредставления.Как сделать так, чтобы изображение отображалось на заднем плане?(т. е. чтобы в пользовательском представлении я мог создать стрелки часов, которые будут отображаться сверху)

Нужно ли в фоновом изображении иметь альфа-области для прозрачности?(если у меня есть правильные термины) Или все в порядке, если изображение с фоном просто установлено на белый или черный, или каким оно должно быть (исходя из того, что оно будет на заднем плане, так что все будет в порядке)

Ответы [ 2 ]

2 голосов
/ 28 июня 2011

Вы не можете: представления составлены поверх их суперпредставлений, что означает, что если ваш пользовательский вид рисует в -drawRect:, он всегда будет отображаться под UIImageView.

Самый простой способ добиться эффекта, который вы ищете, - это поместить изображение под свой пользовательский вид в IB.

Фоновые изображения обычно не нуждаются в прозрачности (и есть небольшое ускорение, если PNG не имеет альфа-канала).

1 голос
/ 28 июня 2011

Альтернативный подход к использованию UIImageView объектов, если вы рисуете все остальное в drawRect:, заключается в прямом использовании изображения.Нарисуйте изображение в drawRect: перед выполнением любого из рисунков.

Пример

- (void)drawRect:(CGRect)rect {
    [backgroundImage drawInRect:rect];

     /* Do rest of your drawing */
}

Теперь это только если вы используете сложное изображение.Если это текстура, вы бы предпочли использовать метод UIColor colorWithPatternImage:, чтобы получить цвет от объекта UIImage и установить в backgroundColor свой собственный вид.Помните, что использование colorWithPatternImage: не будет масштабировать изображение во время рисования и будет мозаичным, если исходное изображение будет меньше рамки просмотра.

...