我的屏幕上有2个UITableViews。
当用户滚动1 ...我需要另一个1也滚动到同一行。
我假设我需要找到一个“tableViewDidScroll”方法......并以某种方式检测“whichRowIsDisplayed”值...然后将另一个tableView设置为“displayThisSameRow”。
我找不到我需要的这3种方法中的任何一种。
帮助!
(编辑:两个表总是具有相同的行数)
答案 0 :(得分:1)
如果表中的行高度相同,则可以使用UIScrollView方法直接设置contentOffset。
为两个表实现委托方法scrollViewDidScroll :.无论哪个表进行调用,都要将另一个表的contentOffset设置为匹配。您应该跟踪何时设置偏移量以避免不必要的呼叫。
// table1, table2, tableBeingScrolled all members
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if ( scrollView != tableBeingScrolled ) {
if ( scrollView == table1 ) {
tableBeingScrolled = table2;
table2.contentOffset = table1.contentOffset;
tableBeingScrolled = nil;
}
if ( scrollView == table2 ) {
tableBeingScrolled = table1;
table1.contentOffset = table2.contentOffset;
tableBeingScrolled = nil;
}
}
}
如果表格具有不同的行高,您可以使用相同的技术,但需要更多的计算来确定要分配的偏移量。