作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个奇怪的 uitableview 选择问题。尝试对预选的几个单元格使用多重选择。多选设置为真。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
cell.textLabel.font = [UIFont systemFontOfSize: 15.0f];
cell.textLabel.text = [data objectAtIndex:indexPath.row];
// if([_selectedInts containsObject:[NSNumber numberWithInt:(int)indexPath.row]]){
//
// [cell setSelected:YES animated:NO];
//
// } else {
//
// [cell setSelected:NO animated:NO];
//
// }
return cell;
}
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
cell.selectionStyle = UITableViewCellSelectionStyleGray;
[cell setUserInteractionEnabled:YES];
if([_selectedInts containsObject:[NSNumber numberWithInt:(int)indexPath.row]]){
[cell setSelected:YES animated:YES];
[cell setAccessoryType:UITableViewCellAccessoryCheckmark];
} else {
[cell setSelected:NO animated:YES];
[cell setAccessoryType:UITableViewCellAccessoryNone];
}
}
当 tableview 加载时,由于整数列表标记了需要选择的索引,因此选择了一堆单元格。
这些单元格停止响应,并且在被点击时不会发出 didselect 和 diddeselect 方法。
问题是什么?
最佳答案
我不确定为什么将该代码放入 willDisplayCell 中会导致这种情况发生,但当我尝试您的代码时,我发现了同样的事情。将代码放入 cellForRowAtIndexPath: 如果我使用 selectRowAtIndexPath:animated:scrollPosition: 而不是 setSelected: 则有效(如果我使用 setSelected:,单元格不会显示选择颜色,但它们会响应)。因此,此代码可以显示复选标记和选择颜色,并在选择或取消选择其他单元格时正确更改该状态。另请注意,我将单元出队,因为这比您创建单元的方式内存效率更高,
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
cell.textLabel.font = [UIFont systemFontOfSize: 15.0f];
cell.textLabel.text = [data objectAtIndex:indexPath.row];
if([_selectedInts containsObject:@(indexPath.row)]){
[tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
[cell setAccessoryType:UITableViewCellAccessoryCheckmark];
} else {
[cell setAccessoryType:UITableViewCellAccessoryNone];
}
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[self.selectedInts addObject:@(indexPath.row)];
[tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
}
-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
[self.selectedInts removeObject:@(indexPath.row)];
[tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
}
关于ios - UITableView选择——多选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23181250/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!