滚动UIScrollView时,UI元素未更新

时间:2015-10-12 13:23:07

标签: ios swift uiscrollview

触摸事件(如滚动)会将运行循环放入NSEventTrackingRunLoopMode。在那种模式下,似乎无法在屏幕上更新UIView的alpha或位置?

我添加了scrollViewDidScroll委托,只需为另一个视图设置一些字母值,这是我的scrollview的一个孩子。 只有在滚动停止后才会更新视图。

是否有某种机制强制更新这些视图? 似乎只是滚动视图的孩子不会更新。

此致

2 个答案:

答案 0 :(得分:1)

持续调用

scrollViewDidScroll:。这意味着每次视图的contentOffset发生变化时,都会调用scrollViewDidScroll:

此代码适用于我:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    NSLog (@"Scroll view did scroll to %@", @(scrollView.contentOffset.x));
    self.label.alpha = scrollView.contentOffset.x / scrollView.contentSize.width;
}

答案 1 :(得分:0)

添加更新内部用户界面的代码

dispatch_async(dispatch_get_main_queue(), ^{

   //Code here to which needs to update the UI in the UI thread goes here

});