2009-06-30 5 views
1

버튼 컨트롤이있는 NIB 파일을 만들었고 배경으로 내 프로젝트에서로드 된 PNG 파일이 포함 된 ImageView가 있습니다.NIB에서로드 한 UIImageView에서 DrawRect를 사용할 수 있습니까?

내가하고 싶은 일은 ImageView 위에 그리는 것입니다. 내 UI가 시계 문자판이라고 상상해보십시오. 배경 이미지 위에 시계 바늘을 그려보고 싶습니다.

UIImageView의 하위 클래스를 사용하고 DrawRect를 기본보기의 DrawRect를 사용할 때처럼 사용하면 화면에 아무 것도 표시되지 않습니다.

나는 문서의이 특정 비트가 따라 잡기가 어렵 기 때문에 약간 길을 잃었습니다. 감사합니다. .

답변

4

(UIImageView의 하위보기로 추가하여) 백그라운드보기 위에있는 새로운 사용자 정의 UIView (예 : HandsView)를 만듭니다. 사용자 정의보기에서 drawRect 메소드를 사용할 수 있습니다. HandsView 아래에 배경 이미지가 보이도록 컨텍스트를 투명하게 지우십시오.

터닝 핸드를 그리려는 경우 두 개의 고정 된 UIImageViews를 손의 이미지와 함께 사용하고 transform 속성을 사용하여 회전을 적용 할 수도 있습니다.

+0

그가 말한 내용. 진지하게, 이것은 당신이 원하는 것입니다. UIKit은 "화가의 모델"을 사용하므로 더 많은 UIView 및 CAlayers를 항상 계층화 할 수 있습니다. –

+0

인터페이스 빌더에서보기를 작성하고 UIView에서 상속 한 클래스와 연관 시켰습니다. 알파 값을 투명하게 설정하면 이후 UIImage가 투명 해짐에 따라 뷰에 추가되는 것을 볼 수 없습니다. 투명도를 다르게 설정해야합니까, 아니면 UIImage에서 설정해야 할 것이 있습니까? – FiddleMeRagged

+0

아, 미안해, 알아 냈어. IB의 투명도를 변경할 필요가 없었습니다. UIView 클래스 내에 다음 코드를 추가해야했습니다. - (void) awakeFromNib { self.backgroundColor = [UIColor clearColor]; } 그런 다음 추가 한 뷰는 표시되지 않지만 이후에 추가 한 UIImage는! 당신의 도움을 주셔서 감사합니다. – FiddleMeRagged