2015-01-02 19 views
7

Interface Builder에서 렌더링 할 때 투명 배경을 가질 수있는 IBDesignable 클래스를 만들려고합니다. 지금까지 불투명 한 검정색 배경이 있습니다. 문제의 간단한 데모를 설정했습니다 :IBDesignable보기가 검은 색으로 표시됩니다.

인터페이스 빌더에서이 장면에 UIView를 배치했습니다. 배경이 분명하기 때문에 그것을 볼 수 없습니다. 이것은 장면 처럼 보일 것입니다.

A screenshot of an empty scene in interface builder

이 스크린 샷에서 유일한 차이점은 내가 'DesignableView'로 우리의 이전에 보이지 않는 뷰의 클래스를 설정 한 것입니다.

#import <UIKit/UIKit.h> 

IB_DESIGNABLE 
@interface DesignableView : UIView 
@end 

@implementation DesignableView 
- (void)drawRect:(CGRect)rect { 
    //rendering code goes here 
} 
@end 

IBDesignable 올바른 투명 배경을 볼 줄 수있는 방법이 있나요 :

A screen shot of an Interface Builder scene with a black box in the middle

여기 DesignableView 클래스의 전체 구현은?

+0

'drawRect :'를 사용하지 않는 경우 주석 처리해야합니다. 성능에 영향을줍니다. 그것도 문제가 될 수있다 – Chris

+0

'drawRect : '의 빈 구현은 나쁜 생각이지만,이 질문과 관련이 없다. 이 예제에서'drawRect :'함수는 비어 있습니다. 왜냐하면 IB에서 검은 색 배경을 갖는 문제를 재현하는 가장 간단한 방법이기 때문입니다. – BradB

답변

10

나는 이것을 어떻게 수정했는지 기억했다. 덮어 써야합니다.

- (void)layoutSubviews 
{ 
    [super layoutSubviews]; 

    self.backgroundColor = [UIColor clearColor]; 
} 
+2

고마워, 크리스! 이것은 잘 작동합니다. 나는이 트릭이'self.backgroundColor'를 설정하는 호출이'prepareForInterfaceBuilder' 함수에서 만들어 졌을 때도 효과가 있다는 것을 발견했다. – BradB

관련 문제