2011-09-11 6 views
1

iOS 프로그래밍을 공부하고 있습니다. 하지만 난 불투명 한 문제가있다.인터페이스 빌더에서 불투명 문제가 발생했습니다.

이제 가정합니다. 두 가지 이미지보기가 있습니다.

코드를 작성할 때 작동합니다. 코드가 여기에 있습니다.

UIImageView *imageView1 = [[UIImageView alloc] initWithImage:@"something1"]; 
UIImageView *imageView2 = [[UIImageView alloc] initWithImage:@"something2"]; 
imageView2.opaque = NO; 
[controller addSubView:imageView1]; 
[controller addSubView:imageView2]; 

이제 imageView2는 imageView1에 있습니다. 그러나 imageView2의 불투명도는 NO로 설정됩니다.

그래서 나는 imageView1 만 볼 수 있습니다. 승인. 그게 내가 원하는거야.

하지만 더 쉽게하고 싶습니다. 그래서 나는 인터페이스 빌더를 사용한다.

두 개의 이미지보기가 있습니다. 하나는 와이어 업 IBOutlet ImageView * imageView1

이고 다른 하나는 IBOutlet ImageView * imageView2입니다.

그리고 imageView2의 속성을 설정합니다. 불투명을 선택 취소하십시오.

및 빌드. 그래서 그것은 위의 코드와 같은 효과라고 생각합니다.

하지만 imageView2는 imageView1에 있습니다.

사라지지 않습니다.

왜 그런가요?

코드가 작동하지만 인터페이스 빌더가 작동하지 않는 이유는 무엇입니까?

+0

문자열을 사용하여 imageviews를 초기화 할 때 위의 코드가 실제 코드가 아닌 것으로 추측됩니다. 그 단계를 지나면 이미지 뷰 2가 두 번째로 추가되므로 볼 수 있습니다. 이미지 뷰 상단 1. – jrturton

+0

예. 그건 내 진짜 코드가 아니야. 그리고 네, 그건 제 잘못입니다. 그것은 문자열이 아닙니다. 그것은 실제로 이미지입니다. 귀하의 의견에 감사드립니다. – MoonSoo

답변

2

UIView의 불투명 속성은보기에서 합성 작업을 최적화 할 수 있는지 여부를 결정하는 데 사용됩니다. 알파 속성을 설정해야합니다.

+0

은 무엇인가요? imageView2의 크기가 imageView1보다 크기 때문에 이 경우 imageView1을 imageView2에 설정하면 모든 것이 올바르게됩니다. imageView1 및 imageView2 둘 다 볼 수 있습니다. (물론 해당 imageView1 겹치는 때문에 imageView2 일부 영역을 볼 수 없습니다)하지만 여러 imageViews있을 때 및 하나의 imageView 추가 할 싶어요. 이미 추가 한 이미지보다 큽니다. 그럼이 모든 것을 재 배열해야합니까? – MoonSoo

+0

인터페이스 빌더를 사용하여 두 이미지보기를 동시에 화면에 추가하는 경우, 이미지보기 2가 이미지보기 1 뒤에 오도록 순서를 변경하십시오. 위의 코드에서 1, 2 순서로 추가하십시오 인터페이스 빌더에서 이미지보기 2가 이미지보기 1 위에 오도록 이미지보기 2를 드래그하십시오.두 이미지를 전환하는 중 하나를 숨김으로 설정하거나 인터페이스 작성기에 UIImageView를 추가하고 이미지를 전환해야 할 때 보유하고있는 UIImage를 바꿀 수 있습니다. 맨 아래 이미지를 가려는 경우 이미지를 마스킹하는 방법을 조사해야합니다. 귀하의 답변에 대해 – cdasher

1

코드에 추가 된 하위보기가 addSubview이라고하는 순서로 서로 겹쳐서 표시됩니다. 특정 Z 위치에 서브 뷰를 추가하려면 insertSubview: atIndex:을 사용하십시오.

인터페이스 빌더에서 메뉴를 사용하여 레이어링을 수동으로 제어해야합니다 (뒤로 보내기 등). 그렇지 않으면 마지막으로 추가 한보기가 맨 위에 표시됩니다.

뷰가 완전히 보이지 않게하려면 opaque 설정을 YES으로 설정해야합니다. 아래에보기를 표시하려면 opaqueNO으로 설정하고 알파 (투명도)를 원하는대로 설정하십시오.

+0

감사합니다. 하지만 난 불투명 한 설정합니다. 알파를 0으로 설정합니다. 이미지 하나를 전혀 볼 수 없습니다. 난 그냥 중복 영역을 숨기고 싶다. 모든 이미지 영역이 아닙니다. 내가 할 수 있을까? – MoonSoo

관련 문제