2011-05-12 2 views
2

저는 UIView의 색이 검정색이고 불투명도가 0.9이거나 그런 식으로되어 있습니다. 내가하고 싶은 일은 UIView을 검은 색 부분으로 채우는 것입니다. 그러나 지정된 사각형 영역은 검은 색이어서는 안됩니다. 즉 그 특정 직사각형 영역은 깨끗한 색으로 유지됩니다 ...UIView의 작은 부분의 색상이 바뀌나요?

어떤 종류의 도움을 주시면 감사하겠습니다.

관련,

이므 란

답변

5

사용자 정의하여 기본보기 작은 UIView 및 설정 배경 투명 색상을 만들 수 있지만 사용 할 수 있습니다 나 자신과 비슷한 어떤 것);

- (void)drawRect:(CGRect)rect { 

// fill the whole UIView with a color 
[[UIColor colorWithRed:1 green:1 blue:1 0.9] setFill]; 
UIRectFill(rect); 

// draw a rect 
CGRect rectIntersection = CGRectIntersection(theRectIWantToDrawIn, rect); 

[[UIColor clearColor] setFill]; 
UIRectFill(rectIntersection); 
} 

위 코드는 특정 위치에서 시뮬레이션 된 클리어 컬러 홀이있는 검은 색 뷰를 그립니다. 물론이 동작을 원하는대로 변경할 수 있습니다.

매우 빠릅니다.

업데이트 : 나는 UIClear 색 (xib에 추가하고 그 속성을 거기에 설정)에 그려야하는 UIView를 설정하고 '불투명'을 선택 취소합니다. 그 구멍을 투명하게 만들어야합니다.

업데이트 2 : (신용 어디 예정이다 학점) 내 대답이 답변에 따라되었습니다 iPhone - Draw transparent rectangle on UIView to reveal view beneath

+0

우수! 이것은 내가 원했던 것입니다. :) 직사각형에 대해 결코 알지 못했지만 ... 문제가 있습니다. 위의 코드는 메인 뷰에 구멍을 뚫었지만, 내가 가지고 있어야하는 부분은 명확한 색깔 (ie 안쪽 직사각형); 'clearColor'를 사용하면 내부에 검은 색 색조가 나타납니다. 사용자가 배경보기를 들여다 볼 수 있도록 선명한 색상을 지정해야하기 때문에 내가 예상했던 것만은 아닙니다. 어떤 생각을 했습니까? – Imran

+0

보기에 일부 속성을 설정해야한다는 점을 잊어 버린 것 같습니다. 이전 답변을 업데이트했습니다. – Jake

+0

그 트릭을 했어 :) 고마워요! – Imran

0

그 지역에 다른보기 (서브 뷰)를 추가합니다. 원하는 색상으로 설정하십시오. 현재 요구 사항을 충족하는 쉬운 솔루션입니다. 또는 일부 석영 코어 기능을 사용할 수 있습니다.

0

당신은 당신은 UIView를 서브 클래스 화해 - (void)drawRect:(CGRect)rect

을 무시하고 다음 (안된의 뭔가를 할 수

UIView *View1 = [[UIView alloc] initWithFrame:CGRectMake(128.0f, 50.0f, 34.0f, 34.0f)]; 
[View1 setBackgroundColor:[UIColor clearColor]];   
[self.view addSubview:View1]; 
[View1 release]; 
관련 문제