在UIView上滚动图案背景

时间:2012-01-10 01:23:24

标签: iphone ios ipad

我有一个简单的UIView,我正在填充图案背景,就像这样

    self.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"backgroundPattern"]];

我希望能够通过修改其bounds属性来操纵视图的原点,并使背景随着原点的变化而移动(就好像背景固定在内容上,而不是在其后面浮动)。这可能吗?目前,背景似乎固定在视图的框架而不是其边界上,当内容滚动时,模式不会滚动。

要更改原点我正在使用像这样的块动画

self.bounds = CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height);
[UIView animateWithDuration:1. delay:0. options:UIViewAnimationOptionRepeat animations:^{
    self.bounds = CGRectMake(0, 100, self.bounds.size.width, self.bounds.size.height);
} completion:nil];

使用该代码,我的孩子会反复滚动和重置视图,但背景保持固定。是否可以指定一个与视图一起滚动的背景?

2 个答案:

答案 0 :(得分:1)

我无法找到任何关于使背景图案“粘贴”到视图的原始系统的东西。我的应用程序的解决方案是制作子视图并在其上设置背景图案。然后子视图将随原点更改一起移动,背景图案将跟随它。该解决方案的问题在于,子视图必须足够大以覆盖潜在来源的范围,如果内容区域可能是任意大的,则可能难以处理。

答案 1 :(得分:0)

您可以在用户平移的方向上再次生成视图实例,并将其添加到NSMutableArray,以便根据世界的偏移量进行访问和移动。