这是个超级好用的方法。视图控件的frame都会经过此方法。因此在自定义视图控件文件内部可以用此方法拦截其frame。

假如我想让自定义cell的上下左右都缩进一些的话我会在cell.m文件中做如下操作

 

- (void)setFrame:(CGRect)frame{

    CGFloat margin = 10;

    frame.origin.y += margin;

    frame.origin.x += margin * 0.5;

    frame.size.width -= margin ;

    frame.size.height -= margin;

    [super setFrame:frame];

}