如果想对cell 只是 想重新布局,可以重写cell的layoutSubviews方法,如果想重新绘制cell的话可以重写drawRect方法,下面是我对系统cell上控件的重新布局:
layoutSubviews在以下情况下会被调用:
1、init初始化不会触发layoutSubviews
2、addSubview会触发layoutSubviews
3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化
4、滚动一个UIScrollView会触发layoutSubviews
5、旋转Screen会触发父UIView上的layoutSubviews事件
6、改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件
//对系统cell上控件重新布局
-(void)layoutSubviews
{
[super layoutSubviews];
[self.imageView setFrame:CGRectMake(25, 10,60, 60)];
self.imageView.contentMode = UIViewContentModeScaleAspectFit;
[self.textLabel setFrame:CGRectMake(110, 20, 200, 20)];
[self.detailTextLabel setFrame:CGRectMake(110, 50, 200, 20)];
self.separatorInset = UIEdgeInsetsMake(0, -60, 0, 0);
}