我有一个相当复杂的观点。我基本上有以下这些
你可以看到我有一个vertical tableview 。在每个单元格中,我都有一个 horizontal tableview 。我现在想要做的是,当我滚动一个 horizontal tableview 时,每个其他水平 tableview 也应该滚动。
在我的垂直 tableviewCell 的子类中,我有以下内容。
for(HorizontalTableCell *cell in mainTable.subviews){
if([cell isKindOfClass:[HorizontalTableCell class]]){
for(UITableView *cellTable in cell.subviews){
if([cellTable isKindOfClass:[UITableView class]]){
NSLog(@"cell table is table %@",cellTable);
[cellTable setContentOffset:CGPointMake(scrollView.contentOffset.x, 0) animated:NO];
}
}
}
}
但这不能正常工作。有人可以帮我解决这个问题吗?
Best Answer-推荐答案 strong>
您将需要使用 ScrollView 委托(delegate)方法。我建议发布一个通知,然后像这样在单元格中提取它......
- (void)scrollViewDidScrollUIScrollView *)scrollView
{
[[NSNotificationCenter defaultCenter] postNotificationName"CellScrolledHorizontally" object:self.tableView];
}
然后在水平单元格中您可以观察到通知。
[[NSNotificationCenter defaultCenter] addObserver:self selectorselector(scrolled name"CellScrolledHorizontally" object:nil];
- (void)scrolledNSNotification *)notification
{
UITableView *notificationTableView = notification.object;
if (notificationTableView == self.tableView)
return;
[self.tableView setContentOffset:notificationTableView.contentOffset];
}
或者,使用 UICollectionView 。
关于iphone - 与另一个 UITableview 同时滚动其他 UITableview,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/16583186/
|