簡體   English   中英

使用Quartz繪制陰影在iPhone和iPad上很慢。 其他方式?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM