在 Tableview 上添加开关按钮并禁用单元格选择
Posted
技术标签:
【中文标题】在 Tableview 上添加开关按钮并禁用单元格选择【英文标题】:Add switch button on Tableview and disable cell selection 【发布时间】:2013-03-01 11:34:02 【问题描述】:我在单元格上添加了切换按钮,但同时我希望我的单元格不应该在选择时突出显示或禁用选择。我确实禁用了用户交互属性,但现在我也无法更改单元格的位置。这是我在 Cell 上添加 Switch 按钮的操作。
UISwitch* switchFB = [[UISwitch alloc] initWithFrame:CGRectMake(227, 8, 79, 27)];
cell.textLabel.text=@"Facebook";
cell.userInteractionEnabled=NO;
cell.accessoryView = switchFB;
现在单元格没有选择,但我也无法更改开关的位置。提前致谢。干杯。
【问题讨论】:
【参考方案1】:cell.userInteractionEnabled=NO;
不要用这个代替下面的:
cell.selectionStyle = UITableViewCellSelectionStyleNone;
此行将帮助您切换到工作,但单元格不会被选中。
【讨论】:
除此之外,在选择事件中,检查开关状态,如果它关闭则什么也不做 在这之后他可以做到这一点【参考方案2】:您可以通过像@Ann 所说的将单元格选择样式设置为 none 来禁用单元格选择。
cell.selectionStyle = UITableViewCellSelectionStyleNone;
UISwitch *switchView = [[UISwitch alloc] initWithFrame:CGRectZero];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
cell.accessoryView = switchView;
[switchView setOn:YES animated:NO];
[switchView addTarget:self action:@selector(switchChanged:) forControlEvents:UIControlEventValueChanged];
- (void) switchChanged:(id)sender
UISwitch* switchControl = sender;
NSLog( @"The switch is %@", switchControl.on ? @"ON" : @"OFF" );
【讨论】:
这可能是完美的答案...谢谢@Pratik【参考方案3】:UISwitch* switchFB = [[UISwitch alloc] initWithFrame:CGRectMake(227, 8, 79, 27)];
cell.textLabel.text=@"Facebook";
//cell.userInteractionEnabled=NO;
[cell.contentView addSubview: switchFB ];
cell.selectionStyle= UITableViewCellSelectionStyleNone;
将 UISwitch 添加到cell.contentView
【讨论】:
以上是关于在 Tableview 上添加开关按钮并禁用单元格选择的主要内容,如果未能解决你的问题,请参考以下文章
在 TableView 的自定义单元格中添加单选按钮并且无法访问外部