我已经在我的应用中实现了一个分区索引,表格视图右侧的字母可以快速跳转到某个部分。我希望在某些情况下禁用用户与该部分索引的交互,但UITableView
上没有允许直接访问部分索引的属性。
如何禁用部分索引的用户交互?
我已禁用与表本身的交互,因此您无法滚动或点按任何单元格,但这仍然允许与部分索引进行交互,因此在点击部分图标时它将滚动到每个部分。
self.tableView.userInteractionEnabled = NO;
如果无法禁用与段索引本身的交互,是否有办法阻止更改表的滚动位置?这正是我想要获得的。
答案 0 :(得分:1)
我找到了解决方案。
让BOOL知道什么时候应该禁用部分索引。
然后在tableView:sectionForSectionIndexTitle:atIndex:
return -1
中,以防止在点击索引时滚动。
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index
{
if (self.tableViewIsDisabled) {
return -1;
}
...
}
答案 1 :(得分:1)
作为替代方案,如果您希望允许滚动 - 这样用户可以查看其中的内容 - 但是阻止他们进行选择等,您可以执行以下操作:
-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (self.tableViewIsDidabled)
return nil;
else
return indexPath;
}
并将sectionForSectionIndexTitle设置为nil。
答案 2 :(得分:0)
UITableView *tab;
mm禁用滚动..
tab.scrollEnabled = NO;
如果你想在某些情况下使用它.. 你可以尝试一个强大的..
if(...)
tab.scrollEnabled = NO;