我有一个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
在启用多选的编辑模式下,这些复选标记是严重的强制性行为?
编辑:我(不情愿地)对有点老套的答案持开放态度,比如移动复选标记的框架直到它离开屏幕。此应用仅供内部使用,无需获得 App Store 批准。但是鉴于在UITableView
进入编辑模式时会自动创建复选标记,我什至不知道如何将它们作为要更改的对象。任何帮助,将不胜感激!