1

私の問題コードは、UIView (drawRect:) で描画している手続き型の背景にあり、UIScrollView にサブビューとして追加しています。手続きコードは以下です。スカイラインのような箱形を描きます。これが私のUIScrollViewを遅くしている理由はありますか? 最初のスクロールだけが遅いようで、その後はキャッシュされているかのようです。背景の幅は、場合によっては 1000 ピクセル以上になることもあります。画像を見る...

- (void)drawRect:(CGRect)rect
{
UIBezierPath *vertLine = [[UIBezierPath alloc] init];

[vertLine moveToPoint:CGPointMake(0,self.frame.size.height)];

int detail = 10;
int ranNum = 0;
int count = self.bounds.size.width/detail;
CGFloat heightIncrement = 0.0;

CGFloat minHeight = self.frame.size.height;

CGFloat xPos = 0;
CGFloat yPos = self.frame.size.height-20;

for (int i =0; i<count; i++)
{
    ranNum += (arc4random() % 9)-5;

    yPos -= (arc4random() % 30);
    [vertLine addLineToPoint:CGPointMake(xPos,yPos)];

    xPos += (arc4random() % 20)+10;
    [vertLine addLineToPoint:CGPointMake(xPos,yPos)];

    yPos += (arc4random() % 30);
    [vertLine addLineToPoint:CGPointMake(xPos,yPos)];

    xPos += (arc4random() % 30);
    [vertLine addLineToPoint:CGPointMake(xPos,yPos)];

    if (yPos>self.frame.size.height-10) {
        yPos = self.frame.size.height-10;
    }

    if (yPos<self.frame.size.height-50) {
        yPos = self.frame.size.height-50;
    }

}

[vertLine addLineToPoint:CGPointMake(count*20,(self.frame.size.height))];

[[UIColor colorWithRed:0.0/255.0 green:38.0/255.0 blue:51.0/255 alpha:1] setFill];

[vertLine fill];

}

ここに画像の説明を入力

4

1 に答える 1