可以修改,通过 kvc 或者 递归查找子视图 方式均可以实现该目的。 @interface UIView (FindView) - (UIView *)findViewWithClassName:(NSString *)aName; @end @implementation UIView (FindView) - (UIView *)findViewWithClassName:(NSString *)aName { NSLog(@"%@", self); if([[[self class] description] isEqualToString:aName]) return self; for(UIView *subview in self.subviews) { UIView *huntedSubview = [subview findViewWithClassName:aName]; if(huntedSubview != nil) return huntedSubview; } return nil; } @end - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { NSString *prefix = @"UITableViewCell"; NSString *suffix = @"EditControl"; NSString *className = [prefix stringByAppendingString:suffix]; UIView *view = [cell findViewWithClassName:className]; view.backgroundColor = [UIColor redColor]; NSLog(@"%@", view); }
该区域显示的cell的背景色,注意:不是contentView的背景色!因此只需修改cell的背景色即可。还需要注意的是:如果cell是通过xib或者storeboard创建,cell中的背景色选择default时实际为白色,选择clearColor时显示的是tableView的背景色。
可以修改,通过 kvc 或者 递归查找子视图 方式均可以实现该目的。