作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个基于表格 View 的 iPhone 应用程序,我需要在其中一个一个地禁用整个表格 View 单元格。
要求就像 -
案例 1:-
最初只有第一个表格单元格行应该启用用户交互,其余的应该禁用。我们可以很容易地做到这一点,使 indexPath.row 0 在 CellForRowAtIndexPath 方法中启用。
案例 2:-
如果用户将点击第一个单元格,当他再次回来时,第一个单元格将被禁用,第二个单元格应该启用(此时休息表单元格将在第二个单元格之后被禁用)。
案例 3:-
同样,如果用户点击第二个表格单元格并返回到此表格,那么除了第三个单元格之外,其他单元格应该被禁用,依此类推...
这意味着我需要按顺序禁用所有表格单元格。可以通过设置索引来实现,但这不是执行此操作的正确方法。那么,您能否建议我为此需要提供什么条件?请建议我进一步处理。
谢谢。
最佳答案
只需维护一个实例变量,其中包含应启用的单元格编号。 enabledCell.
将 enabledCell 初始化为 0。在 didSelectRow 中增加 enabledCell 并重新加载 tableView。如果 indexPath 与 enabledCell 值相同,则仅在 indexPath 处的行的单元格中启用该单元格。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
// write code to dequeue or create new UITableViewCell here
// then check if index is same as the cell that should be enabled
if(index.Path.row == enabledCell)
cell.userInteractionEnabled = NO;
else
cell.userInteractionEnabled = YES;
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
//Assuming you have number of rows stored in variable numberOfRows
enabledCell++;
if(enabledCell == numberOfRows)
enabledCell = 0;
[tableView reloadData];
}
关于iphone - 如何一一禁用 UITableViewCell 选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19361063/
我是一名优秀的程序员,十分优秀!