由于需要,现在我希望能让工程中出现的所有TableView都执行某一个代理方法,比如说:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
[cell setLayoutMargins:UIEdgeInsetsZero];
}
但是由于controller数量巨大,又分散在工程里的很多文件夹中,如果可以的话我不太想一个个找出来单独添加...
请问有什么比较方便快捷的全局添加的方法?
高洛峰2017-04-17 17:31:02
比較好的方法應該是讓你所有的 UITableViewController 繼承一個公用父類,然後在父類別裡寫這個方法。如果子類別裡也用到這個方法,先調 super。
另外有一個方法就是看下Method Swizzling 它倒是可以完美解決你的需求,不需要一個個改之前的程式碼。但是注意這個黑科技一定不要濫用,能不用則不用,因為用多了很混亂。