2014-12-02 87 views
-2

当我创建一个自定义UITableviewCell我设置cell.selected = YESUITableView委托方法tableview:cellForRowAtIndexPath,但它不起作用。如何以编程方式选择一个tableview单元格?

但是,当我在[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

将标题更新为“问题类似”,因为在标题中放置标签并不能帮助任何人 – Matt 2014-12-02 11:16:50

+0

你在哪里调用'setModel:'? – Mateusz 2014-12-02 11:30:06

回答

0

的选择是不是该小区的物业。调用.selected = YES完全没有意义,因为表格不知道选择。

您必须使用[table selectRowAtIndexPath:...],否则将无法正常工作。

另一种可能性是忽略默认选择并实现您自己的选择机制。

相关问题