2013-07-02 2 views
0

이것은 iOS의 레이어에 대한 초보자 질문 일 수도 있지만이를 처리 할 수있는 적절한 방법을 찾지 못했습니다.UIView의 레이어 속성을 업데이트하고 하위 뷰의 레이어를 유지하는 방법은 무엇입니까?

프로그래밍 방식으로 UIView를 만들고 버튼을 추가했습니다.

UIView *subview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)]; 
UIButton *mybutton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[mybutton setTitle:@"Test1" forState:UIControlStateNormal]; 
mybutton.frame = CGRectMake(0,0,50,50); 
[subview mybutton]; 

하위 뷰 프레젠테이션을 사용하여 레이어 속성을 변경하는 것보다 약간의 조작을 수행합니다. 예를 들어 경계선 반지름을 변경하고 그림자를 추가합니다.

[subview.layer setCornerRadius:10.0f]; 
[subview.layer setShadowColor:[UIColor blackColor].CGColor]; 
[subview.layer setShadowOpacity:0.8]; 
[subview.layer setShadowRadius:3.0]; 

이러한 레이어는 mybutton에 대한 변경 사항뿐 아니라 하위 뷰 변경 사항도 표시됩니다. 예를 들어 버튼 제목에도 그림자가 있습니다. 질문을 더 잘 설명하기 위해 샘플 스크린 샷을 만들었습니다. http://img46.imageshack.us/img46/8923/havq.png

iOS에서 어떻게 처리합니까? 내가 단추를 추가하는 다른 종류의 레이어입니까? 조언과 도움에 감사드립니다.

답변

1

문제는 모든 변경 사항이 레이어가 아니라 그림자 일뿐입니다. 그림자는 알파 채널로 합성 된 레이어에 적용되고 하위 레이어를 포함하기 때문입니다.

당신은 수 중 하나

  1. 는 표준
(이 버튼에 형제입니다) 그림자를 지정하는의 다른 하위 레이어를 추가 오프셋 대신 그림자 경로를 사용
+0

도움 주셔서 감사합니다. – Eden1971

관련 문제