2010-06-10 3 views
0

저는 코코아 터치에서 iPad 프로그래밍에 비교적 익숙하지 않습니다.UIButton (iPad)의 PNG 알파 채널

알파 채널이있는 PNG가 있습니다. UButton에 서브 뷰로 오버레이하여 버튼 주위에 테두리가있는 것처럼 보입니다. (알파 채널은 이미지의 중심이므로 사용자는 계속 볼 수 있어야합니다.)

알파 채널을 올바르게 표시하는 방법을 찾지 못하는 것 같습니다. 센터는 여전히 불투명 한 흰색으로 표시됩니다.

내가 그렇게 할 수 없다면 어떻게 UIButton 주위에 테두리를 그립니까? 하위 클래스 UIButton 및 재정의 -drawRect? 단추는 프로그래밍 방식으로 (동적으로) 추가 될뿐만 아니라 테두리에도 추가됩니다. (나는 테두리를 추가하기 위해 단추를 제거하고 싶지 않습니다.) 알파 솔루션은 슈퍼 뷰 (스크롤 뷰)에 테두리 이미지를 오버레이하고 단추에 해당하는 오프셋을 설정할 수 있기 때문에 바람직합니다. .

답변

1

이미지를 추가하거나 이미지를 UIButton에 추가 할 수 있지만 내가 아는 한 모든 질문에 정확하게 알파 마스크를 설정할 수는 없습니다. 따라서 구멍이있는 표준 버튼은 불가능합니다. 그러나 사용자 정의 유형 버튼을 사용하여 원하는 이미지로 이미지를 설정할 수 있습니다. 그러면 원하는 효과를 얻을 수 있습니다. 나중에 세부 조정해야하는 경우 하위 뷰를 추가 할 수 있습니다. 오버레이

편집 :

UIButton *button = [UIButton buttonWithType....]; // your ordinary button here 
    UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"youroverlay.png"]]; 
    // maybe adjust your overlay position here, e.g. imageView.center = .... (use bounds of button, not its frame), or the size directly 
    [button addSubview:imageView]; 
+0

감사합니다. 다시 말하자면 전자 책 리더 앱을 만들고 있습니다. 버튼은 사용 가능한 모든 페이지의 축소판입니다. 버튼에는 이미 배경 이미지 세트 (페이지의 축소판)가 있습니다. 사용자는 버튼을 클릭하여 특정 페이지로 이동할 수 있습니다. 현재 표시된 페이지의 축소판 주위에 테두리를 넣고 싶습니다. 단색 PNG로이 작업을 수행 할 수 있지만 PNG는 자체 알파 채널을 숨기지 않습니다. PNG는 알파 채널을 가지고 있지만 (포토샵에서 그랬습니다) UIImage는 그것을 PNG처럼 투명하지 않고 불투명 한 것으로 그립니다. – Flippie

+0

버튼의 superview의 두 번째 하위보기로 버튼 위에 별도의 UIImageView로 PNG를 오버레이합니다. – Flippie

+0

오버레이에 대한 코드가 추가되었습니다. 이것이 당신의 필요에 맞는 것입니까? – Eiko

관련 문제