2014-12-02 73 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:...],否則將無法正常工作。

另一種可能性是忽略默認選擇並實現您自己的選擇機制。

相關問題