的UIScrollView与图案图像作为背景(UIScrollView with pattern i

2019-07-29 10:23发布

这里是我面临的问题:我想提出一个UIScrollView将有一个模式图像填充背景 。 也就是说,我需要一个背景与UIScrollView的滚动。 这方面的一个很好的例子是游戏中心的应用程序,在iPad上。 背景将滚动视图顺利滚动。

目前,我有两种方法来实现这一效果,但他们都没有提供良好的性能 。 首先,我想这

self.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:kRLCastViewBGUnit]];

但不幸的是,滚动表现得非常糟糕,占据了太多的内存。

然后我试图在这样的drawRect中使用CGContextDrawTiledImage:

- (void)drawRect:(CGRect)rect
{
    CGContextRef currentContext = UIGraphicsGetCurrentContext();

    CGContextTranslateCTM(currentContext, 0, rect.size.height);
    CGContextScaleCTM(currentContext, 1.0, -1.0);

    CGContextClipToRect(currentContext, rect);
    CGRect centerTileRect = CenterTileRect;
    CGContextDrawTiledImage(currentContext, centerTileRect, [ResourceProvider backgroundTileImageRef]);

}

它仍然不是新iPad令人满意。 我一定是做错了事或误用一些方法,这是因为游戏中心执行时,它滚动那么美好。 任何人都可以给我一个解决方案来解决性能问题为背景的UIScrollView? 非常感谢!!

Answer 1:

您应该使用的UITableView代替。 在此,你可以轻松地设置cell.backgroundView。

UIImageView *backgroundView = [[UIImageView alloc] initWithFrame:CGRectMake:(0.0,0.0,320.0, height)];
backgroundView.image = [UIImage imageNamed:@"Shelf.jpeg"];
cell.backgroundView = backgroundView;

如果你真的想只使用UIScrollView的那么只需要一单元格背景图像和图像宽度应该是相同的滚动视图的宽度,因为colorWithPatternImage:像平铺财产法的工作。

只需要这个图片到你的项目,并把它作为UIScrollView的的的backgroundColor。

[scrollView setContentSize:CGSizeMake(320.0, 1000.0)];
[scrollView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"cellImage.png"]]];


文章来源: UIScrollView with pattern image as background