2012-11-21 4 views
1

뭔가 빠졌는지 확실하지 않지만 간단한 작업 만하면됩니다. iOS 6UIView에 그림자를 추가하려고합니다. 스토리 보드와 자동 레이아웃을 사용하고 있습니다. 나는 흰색 배경으로 스토리 보드 화면에서 UIView을 그림으로 그려 넣습니다. 그런 다음 IBOutlet에 연결합니다. 내 .H 파일에 UIView 그림자가 표시되지 않습니다.

은 내가 IBOutlet 및 재산 선언
#import <UIKit/UIKit.h> 

@interface LoginViewController : UIViewController { 

    IBOutlet UIView *_loginPanel; 

} 

@property (nonatomic, retain) IBOutlet UIView *_loginPanel; 

@end 

내 .mi import QuartzCore

#import <QuartzCore/QuartzCore.h> 

Synthesize 재산

@synthesize _loginPanel; 

와 다음을 수행

ViewDidLoad 방법

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    UIBezierPath *path = [UIBezierPath bezierPathWithRect:_loginPanel.bounds]; 

    _loginPanel.layer.masksToBounds = NO; 
    _loginPanel.layer.shadowColor = [UIColor blackColor].CGColor; 
    _loginPanel.layer.shadowOpacity = 0.7f; 
    _loginPanel.layer.shadowOffset = CGSizeMake(-5.0f, -5.0f); 
    _loginPanel.layer.shadowRadius = 8.0f; 
    _loginPanel.layer.shadowPath = path.CGPath; 
    _loginPanel.layer.shouldRasterize = YES; 
} 

하지만 흰색으로 표시되는 경우에만 흰색으로 표시됩니다. UIView 스토리 보드에 정의되어 있습니다.

도움을 주시면 감사하겠습니다.

감사합니다,

리처드

+0

콘센트 (참조)를 UIView에 제공 하시겠습니까 ?? –

+1

@ spill50 귀하의 코드가 완벽하게 작동하고 있습니다. 귀하의 맞춤보기 크기가 상위보기보다 크다고 생각합니다. 그렇지 않으면 콘센트가 연결되어 있지 않습니다. –

+0

@ spill50 코드가 잘 작동하는지 확인하십시오. _loginPanle에 콘센트 (참조)를 지정했는지 확인하십시오. –

답변

1

어쩌면 당신이 줄을 변경할 수 있습니다 물론 shadowPath 라인 ".CGPath"를 제거 오프

CGPathRef path = [UIBezierPath bezierPathWithRect:_loginPanel.bounds].CGPath; 

과 :

UIBezierPath *path = [UIBezierPath bezierPathWithRect:_loginPanel.bounds]; 

과를 .

아마도이 문제를 viewDidAppear 메서드에서 확인하여 크기 조정에 문제가 없는지 확인할 수 있습니다.

+0

I viewDidAppear 메서드로 이동하면 작동합니다. :) 뷰의 크기를 조정하는 제약 조건과 관련이 있어야합니다. 모두 내가 미쳤다고 생각했기 때문에 고마워. –

관련 문제