2013-07-18 71 views
1

我有一個UITableView就是喜歡一個首選項頁面。我使用NSDefaults保存用戶選擇,並在加載時重新加載這些默認值,並設置tableview單元格顯示爲選中狀態。泰伯維,選擇的細胞,不接受用戶點擊

我這樣做是這種方法

- (UITableViewCell *)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
//if this cell should look as if it was selected as a preference { 
    UIView *selectionColor = [[UIView alloc] init]; 
    selectionColor.backgroundColor = [UIColor colorWithRed:(200/255.0) green:(200/255.0) blue:(200/255.0) alpha:0.6]; 
    cell.selectedBackgroundView = selectionColor; 
    cell.selected = true; 
} 
else{ 
    cell.selected = false; 
} 
return cell; 
} 

現在,如果用戶未選中單元格我處理,這裏

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath 

我的問題是,如果我加載應用程序,然後設置我的細胞正確的選擇,他們從不接受點擊事件!所以用戶永遠不能取消選擇它們。

+1

沒有得到問題 – iEinstein

+0

ü可以使烏拉圭回合的問題更精確 – Kasaname

+0

我編輯的問題上,希望它更清晰。 – funkycoldmedia

回答

0

這可能會對你有所幫助。

試試這個方法

- (UITableViewCell *)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
if (indexpath.row == selectedrow) { 
    UIView *selectionColor = [[UIView alloc] init]; 
    selectionColor.backgroundColor = [UIColor colorWithRed:(200/255.0) green:(200/255.0) blue:(200/255.0) alpha:0.6]; 
    cell.selectedBackgroundView = selectionColor; 
    cell.selected = true; 
} 
else{ 
    cell.selected = false;cell.selectedBackgroundView = nil; 
} 
return cell; 
} 

請讓我知道如果你需要任何細節。

+0

嗯,我試過這個,但單元格仍然不可點擊。 – funkycoldmedia

+0

我想你並沒有清除didselectrowatindexpath方法中的NSUserDefaults。請通過這個例子https://github.com/cwalcott/UITableView-Tutorial – Tendulkar

+0

請讓我知道,如果有任何問題 – Tendulkar