1

UIScrollview内に表示するカスタム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」をハッキングしていた行を削除するだけで、スクロールビューが再び高速でスムーズになります。

カスタムビューにシャドウを追加する適切な方法は何ですか?

4

1 に答える 1

2

UIViewこれは、移動するときに行う必要があるすべての再描画と関係があります。

レイヤーをラスタライズすると、よりスムーズになります。これでうまくいくはずです。

self.layer.rasterizationScale = [UIScreen mainScreen].scale;
self.layer.shouldRasterize = YES;

シャドウパスを追加してみてください。

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

これはもう少し役立つかもしれません。

于 2013-03-27T12:30:57.420 に答える