同时滚动两个 UITableView 时 UIScrollView 不流畅?

Posted

技术标签:

【中文标题】同时滚动两个 UITableView 时 UIScrollView 不流畅?【英文标题】:UIScrollView is not smooth while scrolling two UITableViews simultaneously? 【发布时间】:2013-12-09 12:10:23 【问题描述】:

我制作了两个 UITABLEVIEW,如下所示

这里一个Table是UITableViewLeft,第二个是UITableViewRight?

@property(nonatomic,retain) IBOutlet UITableView *tableview_newsFeed;
@property(nonatomic,retain) IBOutlet UITableView *tableViewMainNewsFeed;

我正确合成了它们并连接到 xib。

为了同时滚动两个 UITableViews,我编写了如下代码

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 


    NSLog(@"contentOf Set of ui scrol view");


    UIScrollView *otherScrollView = (scrollView == self.leftTableView) ? self.rightTableView : self.leftTableView;

    [otherScrollView setContentOffset:[scrollView contentOffset] animated:YES];
   

一切正常,但并不顺利。

我试图制造威胁,我也使用了下面的块

[UIView animateWithDuration:0.003f
                     animations:^

                      ];

但没有用户。

如何同时平滑滚动两个 TableView。

谢谢

【问题讨论】:

首先你的视图层次结构是什么 我首先尝试使用 [otherScrollView setContentOffset:[scrollView contentOffset] animated:NO];但是,如果您想要一个好的解决方案,请尝试使用 ONE UICollectionView 你的cellForRowAtIndexPath方法的实现是什么? 尝试在后台线程而不是主线程中实现图像。 CellForRowAtIndexPath 中除了 CustomCell 的用户之外什么都没有。 【参考方案1】:

问题是当您滚动表格视图时,它正在执行该方法。所以不需要从两者之间的最大tableview长度触发滚动视图的setContentSize方法。 通过计算 tableview 的高度来维护一个 int 变量,并在最后一个 tableview 单元格中输入 scrollView.frame = tableView1.frame;scrollView.frame = tableView2.frame;

【讨论】:

但是我应该在哪里使用 setContentSize 以及如何使用? 没有 ScrollView 绅士,请再次阅读我的问题。我想你没有明白我的意思。你的 ScrollView,一个新的 OBJECT 在哪里?或者它是什么? 嘿伙伴添加一个scrollView并将两个tableview作为子视图,使tableview scrollEnable = FALSE;然后你就可以用两个子视图作为表格视图滚动滚动视图。我认为这是你应该尝试的。同时将scrollview的内容大小设置为tableview的高度【参考方案2】:

这可能不是唯一的解决方案,但是您是否也尝试过使单元格中的所有视图都变得不透明?我认为它可能会引发性能问题。

【讨论】:

以上是关于同时滚动两个 UITableView 时 UIScrollView 不流畅?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 UITableView 在同时滚动和更新时会丢失部分标题?

UIScrollView 内的可选 UITableViewCells

如何在 UIViewController 的 tableView 顶部添加自定义视图并能够一起滚动

UITableView 不能向下滚动。键盘同时显示和不显示

如何同时使用 UIScrollView 和 UITableView 实现平滑滚动?

UITableView如何在重新加载后继续滚动