[英]Drawing shadow with Quartz is slow on iPhone & iPad. Another way?
當我發現在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;
雖然這確實在我的應用程序中創建了一個美麗的陰影,但是當顯示視圖時它現在也會落后於死...即使在調試器外部啟動時也是如此。 有沒有我忘記的東西,或者這種方法對於較大的觀點是不實用的?
作為參考,我在這里發布了一個截圖。
您應該設置shadowPath
屬性 。 這是CoreGraphics能夠優化陰影的方式。
例如,如果您的視圖是不透明的矩形:
self.contentView.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.contentView.bounds].CGPath;
以為我應該回答,因為我不希望這個寶石被埋沒在評論中。
除了上面提到的cobbal的答案之外,occulus還提到了非矩形陰影的以下優化,例如文本陰影。
self.contentView.layer.shouldRasterize = YES;
// Fix visual degradation when rasterizing on high-density screens:
self.contentView.layer.rasterizationScale = [[UIScreen mainScreen] scale];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.