当我创建自定义UITableviewCell时,我在cell.selected = YES
委托方法UITableView
中设置tableview:cellForRowAtIndexPath
,但它不起作用。
但是,当我在[tableview reloadData]之后调用[tableView selectRowAtindexPath:]时,没有问题。我很困惑
以下是一些代码来源:
-(void)setModel:(GAInterestSetModel *)model
{
_model = model;
if (model.iconURL && model.iconURL.length > 1) {
[iconView setImageWithURL:[NSURL URLWithString:model.iconURL]];
}
if (model.title && model.title.length > 1) {
titleLabel.text = model.title;
}
if (model.memberCounts) {
membersLabel.text = [NSString stringWithFormat:@"成员:%d",model.memberCounts];
}
self.selected = model.defaultChoosed;
}
代替方法:
[modelsArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
tempModel = (GAInterestSetModel *)obj;
if (tempModel.defaultChoosed) {
[rootTableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:idx inSection:0] animated:NO scrollPosition:UITableViewScrollPositionNone];
}
}];
答案 0 :(得分:0)
选择不是单元格的属性。调用.selected = YES
绝对没有任何意义,因为表格并不知道选择。
你必须使用[table selectRowAtIndexPath:...]
,否则它将无法工作。
另一种可能性是忽略默认选择并实现自己的选择机制。