我的表視圖在每行內部包含一個uibutton,具體取決於用戶是否已兌換它,我想更改它的圖像以及它是禁用還是啓用。在TableViewCell中更新UIButton狀態更改其他行
當用戶購買一個項目(比如說第0項,它總是第一行),我想通知我的應用程序它應該切換圖像並禁用特定行中的按鈕。我正在使用NSUserDefaults來提醒我的tableView。
換句話說,如果用戶點擊他們被要求如果他們想贖回或取消,如果用戶按下贖回項0,我做到以下幾點:
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"itemZeroRedeemed"];
[storeTableView reloadData];
在我的cellForRowAtIndexPath
我做的:
if([[NSUserDefaults standardUserDefaults] boolForKey:@"itemZeroRedeemed"]) {
if(indexPath.row == 0) {
[cell.productInfoButton setBackgroundImage:[UIImage imageNamed:@"itemUnlocked"] forState:UIControlStateNormal];
cell.productInfoButton.enabled = NO;
}
}
它的工作原理非常完美,它可以正確更新tableView和row,尤其是當以後再回來的時候。我的問題是,列表項5下方更靠近新按鈕狀態。我如何解決這個問題,因爲我只想更新指定的按鈕?
你可以分享你充分的cellForRowAtIndexPath? – Rashad
我猜想單元格向下使用「itemZeroRedeemed」也是關鍵。這可能是由細胞回覆機制造成的。分享更多的代碼,特別是'cellForRowAtIndexPath'。 –