画像付きの高速スクロールテーブルセル。これはどのように行われますか?
-
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のパフォーマンスはかなり低下する可能性があります。多くのコードのパスをたどって他の単純なセルを作成する前に、まずそれを試してみることをお勧めします。
所属していません StackOverflow