1

不知道哪里错了。我在 Storyboard 中有一个 UIImageView,它通过 IBOutlet 连接到代码。我想向 UIImageView 添加一个阴影(在运行时)。并为此使用此代码片段(从 stackoverflow 帖子中获得此帮助):

-(void) awakeFromNib { 
    self.imageViewTopBar.layer.shadowColor = [UIColor blueColor].CGColor;
    self.imageViewTopBar.layer.shadowOffset = CGSizeMake(0, 5);
    self.imageViewTopBar.layer.shadowOpacity = 1.0;
    self.imageViewTopBar.layer.shadowRadius = 3.0;
        //self.imageViewTopBar.layer.masksToBounds = YES;
    //self.imageViewTopBar.clipsToBounds = NO;
    self.imageViewTopBar.layer.shouldRasterize = YES;
}

但它根本行不通。请问有什么帮助吗?我看不出它不应该工作的任何理由。

我的环境:XCode 4.5.2、iOS 5、iPhone 4

4

3 回答 3

1

您应该使用它-viewDidLoad来执行此操作,请查看这篇文章:在 awakeFromNib 中访问视图?

于 2012-11-28T19:59:59.617 回答
0

您是否已在 xib 中将 clipToBounds 检查为 YES?

如果是,您应该取消选中 clipToBounds 并重新组织您的视图层次结构。

通常,当我有一个带有阴影的 imageView 时,我会使用这个层次结构

(aImageView)   ClipToBounds=YES
     |
     |
   (aView)     Shadow setted here
     |
     |
 (Superview)

aView 与 aImageView 具有相同的帧大小

于 2012-11-28T21:29:26.587 回答
0

尝试将其放入 viewDidLoad。我假设您已经包含了quartzcore 框架。如果不是,我认为它会引发编译器错误......

于 2012-11-28T19:59:31.820 回答