画像付きの高速スクロールテーブルセル。これはどのように行われますか?

StackOverflow https://stackoverflow.com/questions/1606606

  •  05-07-2019
  •  | 
  •  

質問

私は、Tweetieの作成者であるLoren Brichterのテクニック(またはこの手法)。アイデアは「自分で絵を描く」ことだと思います。 UITableViewCellでサブビューと画像を使用する代わりに。

下に画像を含めるように彼の例を拡張しましたが、これが正しい方法かどうかわかりません。

CALayerをいじってみましたが、「取得」に苦労しています。そのため、この例では、画像を描きました。しかし、よくわかりません–これは、画像がビューに表示される方法と同じように見えますか?次に、UIGraphicsBeginImageContextを使用して、より多くの画像(footerImageなど)を含めます

この例で行っていることは、すべてをIBで作成するよりもパフォーマンスを改善するのですか?

ありがとう

- (void)drawContentView:(CGRect)r
{
    CGContextRef context = UIGraphicsGetCurrentContext();

    UIColor *backgroundColor = [UIColor whiteColor];
    UIColor *textColor = [UIColor blackColor];

    if(self.selected)
    {
        backgroundColor = [UIColor clearColor];
        textColor = [UIColor whiteColor];
    }

    [backgroundColor set];
    CGContextFillRect(context, r);

    // This is where I add the image to the example
    //
    CGRect profile = CGRectMake(0, 0, 320, 20);
    [headerImage drawInRect:profile];

    CGPoint p;
    p.x = 12;
    p.y = 9;

    [textColor set];
    CGSize s = [firstText drawAtPoint:p withFont:firstTextFont];

    p.x += s.width + 6; // space between words
    [lastText drawAtPoint:p withFont:lastTextFont];
}
役に立ちましたか?

解決

はい、この手法により、ストレートIBセルよりもパフォーマンスが向上します。ただし、セルのすべての要素を不透明にすると、IBのパフォーマンスはかなり低下する可能性があります。多くのコードのパスをたどって他の単純なセルを作成する前に、まずそれを試してみることをお勧めします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top