在iOS上同时更新UI

时间:2012-07-22 14:02:07

标签: ios5 user-interface concurrency uiscrollview uibutton

我的应用程序中有两个滚动视图,一个包含UIImageViews,一个包含UIButtons。使用NSTimer,我让它们自动滚动。但是,如果其中一个滚动视图被篡改(手指触摸它并开始手动滚动),则另一个滚动视图也会停止。有没有办法阻止这种情况发生?或者这是正常的吗?

此外,第二个滚动视图内的UIButtons是可点击的,但它们不显示标准高亮显示。如果我启用发光效果,它可以工作,但不是标准的高亮显示。无论如何我还可以做这项工作吗?

我的NSTimer代码是

[NSTimer scheduledTimerWithTimeInterval:0.018 
                                 target:self 
                               selector:@selector(onTimerScrollText) 
                               userInfo:nil 
                                repeats:YES];

- (void)onTimerScrollText {
    CGFloat x = self.textScroller.contentOffset.x;

    x += 0.5;

    [self.textScroller setContentOffset:CGPointMake(x, 0)];
}

图像滚动条几乎相同。

谢谢!

1 个答案:

答案 0 :(得分:0)

一个scrollview不再滚动直到另一个手动滚动完成的初始问题已经解决。

解决方案很简单。每个计时器都需要添加到运行循环中:

[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

现在无论是否被一个人的手指打断,他们都会工作。