2013-03-27 65 views
1

我正在實現一個自定義的UIView來顯示在UIScrollview中。問題是,我需要的觀點,所以我做砸一個陰影:IOS - 帶影子的Quartzcore自定義UIView

#import <QuartzCore/QuartzCore.h> 
@implementation CustomView 

-(void)setupView{ 


    self.layer.shadowColor = [UIColor blackColor].CGColor; 
    self.layer.shadowOpacity = 0.5; 
    self.layer.shadowRadius = 1; 
    self.layer.shadowOffset = CGSizeMake(.6f, .6f); 
    self.layer.cornerRadius = 2; 

    [...] 

} 

-(id)initWithFrame:(CGRect)frame{ 
    if((self = [super initWithFrame:frame])){ 
    [self setupView]; 
    } 

    return self; 
} 

[...] 

的一點是,當我生成並運行此滾動視圖是如此緩慢,我只是需要刪除那些行,我被盜號「self.layer」和滾動視圖又快又平滑。

什麼是向我的自定義視圖中添加陰影的正確方法?

回答

2

這與移動時UIView必須執行的所有重繪有關。

如果柵格化將成爲方式平滑層,這應該做的伎倆:

​​

你可以嘗試添加了陰影路徑:

self.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.bounds]; 

這可能有助於更多一點。

+0

這是一種更流暢但仍不流暢的方式。在這之後有什麼我可以做的? – luca 2013-03-27 12:48:05

+0

並不是真的,這會將圖層光柵化(將其轉換爲圖像),然後移動並在您不再繪製時重繪。您正在測試您的應用的設備類型是什麼?改變了我的答案,包括陰影路徑。 – rckoenes 2013-03-27 13:09:49

+0

好吧這有點奇怪。iPhone 4 – luca 2013-03-27 13:13:50