1

我不确定我是否遗漏了什么,但应该是一项简单的任务却不想工作。UIView我正在尝试在 in 中添加阴影iOS 6。我正在使用故事板和自动布局。我正在UIView用白色背景绘制故事板场景。然后将其链接到IBOutlet.

在我的 .h 文件中,我声明了IBOutletand 属性

#import <UIKit/UIKit.h>

@interface LoginViewController : UIViewController {

    IBOutlet UIView *_loginPanel;

}

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

@end

在我的.miimport 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我在故事板中定义的白色。

任何帮助将不胜感激。

谢谢,

理查德

4

1 回答 1

1

也许你可以改变这一行:

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

和 :

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

并且当然删除 shadowPath 行中的“.CGPath”。

也许你可以尝试在 viewDidAppear 方法中做这个,看看是不是调整大小的问题。

于 2012-11-21T13:43:48.680 回答