點選UITableViewCell.selected方法被多次呼叫的解決方案
阿新 • • 發佈:2019-01-25
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