当我发现在iPhone / iPad上为我的UIViews添加阴影是多么容易时,我感到非常兴奋。
只需在Xcode中添加框架,将导入添加到文件顶部:
#import <QuartzCore/QuartzCore.h>
然后:
self.contentView.layer.shadowRadius = 3.0;
self.contentView.layer.shadowOffset = CGSizeMake(-2.0, -3.0);
self.contentView.layer.shadowOpacity = 0.5;
self.contentView.layer.shadowColor = [UIColor blackColor].CGColor;
虽然这确实在我的应用程序中创建了一个美丽的阴影,但是当显示视图时它现在也会落后于死...即使在调试器外部启动也是如此。有没有我忘记的东西,或者这种方法对于大型观点是不实用的?
作为参考,我发布了截屏here。
答案 0 :(得分:53)
您应该设置shadowPath
property。这是CoreGraphics能够优化阴影的方式。
例如,如果您的视图是不透明的矩形:
self.contentView.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.contentView.bounds].CGPath;
答案 1 :(得分:6)
我想我应该回答一下,因为我不希望这个宝石被埋没在评论中。
除了上面提到的cobbal的答案之外,occulus还提到了非矩形阴影的以下优化,例如文本阴影。
self.contentView.layer.shouldRasterize = YES;
// Fix visual degradation when rasterizing on high-density screens:
self.contentView.layer.rasterizationScale = [[UIScreen mainScreen] scale];