1. 程式人生 > >點選UITableViewCell.selected方法被多次呼叫的解決方案

點選UITableViewCell.selected方法被多次呼叫的解決方案

PS:自打使用了self-manager的設計模式.跳轉控制器變得方便多了.

某天.更新Xcode之後發現一個BUG.就是點選Cell之後方法執行兩遍.WTF?

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];
    // Configure the view for the selected state
    //初始化為未選中狀態
    if (selected == YES) {
        //做一些選中後的改變
} } }

下面介紹一個最簡單的方法…那就是把判斷移到setHighLighted裡面

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
    [super setHighlighted:highlighted animated:animated];
    //初始化為未選中狀態
    if (highlighted == YES) {
        //做一些選中後的改變
        }
    }
}

不管selected呼叫幾次,反正highlighted只會呼叫一次.在這裡面判斷肯定沒兩次呼叫的BUG.

PS:也可以自定義一個屬性來記錄.

最好的解決方法還是使用UITableView的點選代理didSelectRowAtIndexPath