我有一个UITableView
,在编辑模式下自动设置为多选,使用以下代码在viewDidLoad
中实现:
self.tableView.allowsMultipleSelectionDuringEditing = YES;
[self setEditing:YES animated:YES];
然而,我想指出的是,选中一行的方式是通过更改其背景颜色,而不是通过自动出现在每行左侧的复选框来实现的。(例如,在邮件应用中编辑电子邮件列表时出现的复选框,或在这个SO问题中讨论的复选框。) 我已经基本上解决了它,除了无法让那些由于将
UITableView
设置为编辑模式而自动创建的复选框消失。以下是我正在使用的代码:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return _Hierachy.cellCount;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *testCell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if(testCell == nil) {
testCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
}
[[testCell textLabel] setText:@"Test Cell"];
return testCell;
}
这些是我目前所得到的唯一的UITableView
方法,因此其他所有内容都应该是默认行为。
有人知道如何在编辑模式下隐藏左侧的勾选标记吗?我看到很多关于单元格附件部分中勾选标记的问题,但据我了解,这是一个不同的事情。我也看到有人谈论tableView:didSelectRowAtIndexPath:
方法,但这些勾选标记是在表格进入编辑模式时创建的,并在用户点击“完成”时消失,因此该方法似乎与此无关。
我最接近的方法是找到这个方法:
- (BOOL)tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath{
return NO;
}
但这只是防止单元格的内容缩进以便为复选标记腾出空间。复选标记仍然会显示。
肯定有一种方法可以隐藏这些复选标记,同时允许在编辑模式下进行多个选择吧?或者说这些复选标记是不可避免的UITableView带有启用多重选择的编辑模式的行为?
编辑:我(勉强)愿意接受某种程度上是hack-y的答案,例如将复选标记的框架移动到屏幕之外。这个应用程序是供内部使用的,不需要经过App Store的批准。但由于当UITableView进入编辑模式时会自动创建复选标记,因此我甚至不知道如何将它们作为对象来修改。任何帮助都将不胜感激!