写个UITableViewCell的分类重写这个方法 - (void)didMoveToSuperview {
[super didMoveToSuperview];
// 全局替换右侧箭头
if (self.accessoryType == UITableViewCellAccessoryDisclosureIndicator) {
UIImageView *i = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"btn_enter"]];
self.accessoryView = i;
} }
更新2016-2-18早,有些复杂的cell的情况下,还是没有替换成所需要的自定义箭头,那么这种情况下只能在特别的控制器里重写代理方法
#pragma mark - UITableViewDelegate
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
// 不用系统自带的箭头
if (cell.accessoryType == UITableViewCellAccessoryDisclosureIndicator) {
UIImage *arrowImage = [UIImage imageNamed:@"btn_enter"];
UIImageView *arrowImageView = [[UIImageView alloc] initWithImage:arrowImage];
cell.accessoryView = arrowImageView;
}
}
或者真的是需要全部处理箭头的话,就要用到hook了