我有一个带有一些单元格的tableView。每个单元格还包含一个按钮。当用户点击按钮时,应该使单元格不可点击,但按钮应该是可点击的。因此,当用户点击一个不可点击的单元格的按钮时,该单元格应该再次变为可点击。
我尝试过:
cell.userInteractionEnabled = NO;
...但是接着按钮就再也无法被点击了。
提前感谢你的努力。
编辑 我的意思是:当我点击一个单元格时,会打开一个新视图。但是我希望当单元格不可点击时不会发生任何操作。
我有一个带有一些单元格的tableView。每个单元格还包含一个按钮。当用户点击按钮时,应该使单元格不可点击,但按钮应该是可点击的。因此,当用户点击一个不可点击的单元格的按钮时,该单元格应该再次变为可点击。
我尝试过:
cell.userInteractionEnabled = NO;
...但是接着按钮就再也无法被点击了。
提前感谢你的努力。
编辑 我的意思是:当我点击一个单元格时,会打开一个新视图。但是我希望当单元格不可点击时不会发生任何操作。
无法点击是指什么?如果您只想让单元格不可选择,您可能正在寻找这个:
cell.selectionStyle = UITableViewCellSelectionStyleNone;
如果您希望在禁用选择时防止代码被执行,只需在didSelectRowAtIndexPath:
方法内检查选择属性即可。类似于以下内容:
if (tableView.allowsSelection) {
// execute your code here
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
if (cell.selectionStyle != UITableViewCellSelectionStyleNone) {
//(your code opening a new view)
}
}
请记住,您仍需使用此属性,当您不希望单元格可选时,请将其设置为UITableViewCellSelectionStyleNone
,当您希望再次选择它时,请将其设置回UITableViewCellSelectionStyleBlue
(或UITableViewCellSelectionStyleGray
)。
prepareForSegue
方法结合起来吗? - user2650439prepareForSegue
中,你没有对所选的 indexPath(以及相应的单元格)进行引用,因此你需要将所选单元格存储在某个实例变量或类似的东西中。如果这个答案对你有帮助,请不要忘记接受它,以便将你的问题从未回答的部分中移除! - Lucas Eduardocell.selectionStyle = .None;
(注:该句为Swift代码) - dy_Swift 版本:
cell.selectionStyle = .none
通过将 selectionStyle
设置为 UITableViewCellSelectionStyleNone
,可以取消选择。
cell.selectionStyle = UITableViewCellSelectionStyleNone;
在 -tableView:didSelectRowAtIndexPath:
方法中不执行任何操作。
你可以在该代理方法中进行选择,例如只有第一部分中的第一行具有按钮且不应执行任何操作:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSIndexPath *indexPathForDisabledCell = [NSIndexPath indexPathForRow:0
inSection:0];
if([indexPath compare:indexPathForDisabledCell] != NSOrderedSame) {
//Do whatever you do with other cells
}
}
关键路径 | 类型 | 值
selectionStyle | 数字 | 0