2009-06-30 2 views
1

Я создал файл NIB с некоторыми элементами управления на нем, а в качестве фона у него есть ImageView, который содержит файл PNG, загруженный из моего проекта.Могу ли я использовать DrawRect для UIImageView, загруженного из NIB?

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

Правильный ли подход к подклассу UIImageView и использование его DrawRect, как при использовании DrawRect в представлении по умолчанию, я ничего не вижу на экране?

Я немного потерян, так как я нахожу этот конкретный фрагмент документации трудно следовать. Спасибо.

ответ

4

Создайте новый пользовательский UIView (например, названный HandsView), который находится поверх вашего фонового представления (добавив его в качестве подзадачи UIImageView). В пользовательском представлении вы можете использовать метод drawRect. Убедитесь, что контекст прозрачен, так что фоновое изображение можно увидеть ниже HandsView.

Если вы хотите просто потянуть руки, вы также можете попытаться использовать два фиксированных UIImageViews с изображениями рук и использовать свойство transform для применения вращения.

+0

Что он сказал. Серьезно, это то, что вы хотите сделать. UIKit использует «модель художника», поэтому вы всегда можете сложить больше UIViews и CAlayers. –

+0

Я создал представление в Interface Builder и связал его с классом, наследующим от UIView. Если я установил значение alpha так, чтобы оно было прозрачным, я не вижу UIImage, который впоследствии добавляю к представлению, так как он также прозрачен. Должен ли я настраивать прозрачность по-другому или есть что-то, что мне нужно установить в UIImage? – FiddleMeRagged

+0

Ой, мне очень жаль, я все понял. Мне не нужно было менять прозрачность в IB, мне просто нужно было добавить следующий код внутри класса UIView, который я сделал. - (void) awakeFromNib { self.backgroundColor = [UIColor clearColor]; } Затем я не добавил вид, но добавленный мной UIImage был добавлен! Спасибо за вашу помощь. – FiddleMeRagged