【发布时间】:2009-11-20 01:04:26
【问题描述】:
所以我正在尝试制作一个具有重复背景的 UITableView。我希望背景与文本一起滚动。问题是背景是2张图片。有一个高度约为 550 像素的顶部图像,然后是一个高度为 2 像素的中继器图像。我希望顶部图像与表格视图一起滚动,然后最终离开顶部,然后片段图像只是重复。此视图实际上位于视图控制器中的 UITableView 下方。
这是我的背景绘制。每当顶部的表格视图滚动时,我都会调用 setNeedsDisplay。
-(void)drawRect:(CGRect) rect
{
CGRect topRect = CGRectMake(0, _tableViewRect.origin.y, 320, min( max(0, CGImageGetHeight(top) - _tableViewRect.origin.y), _tableViewRect.size.height));
CGRect segmentRect = CGRectMake(0, topRect.size.height, 320, _tableViewRect.size.height - topRect.size.height);
if(topRect.size.height > 0)
{
CGImageRef newImageRef = CGImageCreateWithImageInRect(top, topRect);
UIImage *newImage = [UIImage imageWithCGImage:newImageRef];
[newImage drawAtPoint:CGPointMake(0,0)];
}
[[UIImage imageWithCGImage: segment] drawAsPatternInRect:segmentRect];
}
它可以工作,但在我的 3G 上非常笨拙。有没有人有任何优化技巧或其他方法?
干杯
【问题讨论】:
标签: iphone objective-c uitableview background