2011-05-16 53 views
0

在我的表視圖,我設置的選擇樣式裏面小區選擇的風格變化

- (void)tableView:(UITableView *)iTableView didSelectRowAtIndexPath:(NSIndexPath *)iIndexPath { 

MyCell *aCell = (MyCell *)[iTableView cellForRowAtIndexPath:iIndexPath]; 
aCell.selectionStyle = UITableViewCellSelectionStyleBlue; 

現在,在第二次敲擊,而不是在第一抽頭選擇風格變化。一旦單元被輕敲,那麼它可以正常工作,如果你回來並再次選擇它。這是什麼原因?

+0

你可以發佈你的代碼爲數據源委託 - 'cellForRowAtIndexPath'?我的猜測是你需要在改變底層模型之後調用'reloadData'。 – 2011-05-16 21:30:40

回答

3

這樣做的原因是,當已經小區選擇的tableView:didSelectRowAtIndexPath:方法被調用(驚喜!)。所以在之前應用默認選擇樣式,該方法第一次被調用,即在執行aCell.selectionStyle = UITableViewCellSelectionStyleBlue之前。當選擇風格改變一次時,顯然它仍然適用於隨後的調用(水龍頭)。要解決此問題,您必須在選擇單元格之前調用方法tableView:cellForRowAtIndexPath:tableView:willSelectRowAtIndexPath:中設置選擇樣式。