繁体   English   中英

UIScrollView内容更改时更新UITableView

[英]Update UITableView when UIScrollView content changes

我有2个ViewController,每个ViewController包括一个滚动视图(显示几个图)和一个表视图。 我想基于滚动视图中显示的当前图形更新表视图内容。

滚动视图由单独的类“ GraphScrollView”管理,其中属性currentIndex存储所显示的当前图形。

问题是我不知道如何通知viewController currentIndex已更改,以便它可以发送reloadData方法来更新tableview。 我当时想在GraphScrollView类中发布通知,并在2个viewControllers中添加一个Observer,但是在这种情况下,两个ViewController都将被通知,而我只想通知当前活动视图的viewController(因为两个VC应该是独立的,也因为两个viewController可以具有不同数量的图,因此,对于两个VC之一,currentIndex可能是错误的值)。

谢谢,Corrado

我假设您可以在“活动视图”更改时将视图控制器设置为观察者并将其删除。

您还可以创建一个委托协议,并切换哪个视图控制器为委托,但实际上,我发现,与通知相比,这样做没有更多的收获。

从您的问题尚不清楚,您如何更改滚动视图中的currentIndex 但是,您始终可以在视图控制器中实现UIScrollViewDelegate,以在滚动结束时获取更新:

...
@implementation ViewController 
...
- (void)viewDidLoad {
   ...
   self.graphScrollView.delegate = self;
   ... 

}

...
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
   if (self.graphScrollView.currentIndex == ???) {
       [self.tableView reloadData];
   }
}
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM