好吧,我發現瞭如何做到這一點以及良好和優雅的方式,它是簡單除了例外:
的UITableView有選擇一行的方法selectRowAtIndexPath:animated:scrollPosition:
。 完成我正在尋找的最好方法是創建一個NSSet
的NSIndexPaths
,並且在編輯模式下設置UITableView
後立即迭代該設置並逐個選擇單元格。
例如以這種方式:
- (NSArray *)_preselectedIndexPaths
{
NSMutableSet *preselectedItems = [NSMutableSet set];
NSUInteger s = 0, r = 0;
for (NSArray *section in self.data) {
for (id item in section) {
if ([item shouldBePreselected]) { //this is the condition
[preselectedItems addObject:[NSIndexPath indexPathForRow:r inSection:s]];
}
r++;
}
s++;
}
return [preselectedItems allObjects];
}
,然後,對選擇項目詮釋表視圖:
[self.tableView setEditing:![self.tableView isEditing] animated:YES];
for (NSIndexPath *ip in [self _preselectedIndexPaths])
{
[self.tableView selectRowAtIndexPath:ip
animated:YES
scrollPosition:UITableViewScrollPositionNone];
}
我希望這可以幫助別人。