大家是否还记得对控件的frame/bounds/center进行属性更改时的三部曲?
1>将结构体取出
2>改变取出后的结构体对应的数据
3>将修改后的结构体赋值给控件
CGRect frame = self.view.frame;
// your code...
frame.origin.x = frameX;
// your code...
self.view.frame = frame;
这在实际工作中需要更改相应属性的时候是很不方便的,所以考虑到直接在UIView的分类中添加相应的属性通过重写它们的setter与getter方法达到快速赋值的目的;
思路:
1>在.h文件中添加相应的属性例如
@property (assign,nonatomic) CGFloat frameX;
-(CGFloat)frameX{
return self.frame.origin.x;
}
-(void)setFrameX:(CGFloat)frameX{
CGRect frame = self.view.frame;
frame.origin.x = frameX;
self.view.frame = frame;
}
这样在后续工作中使用的时候就会特别的方便,例如想更改控件的frame属性中的X值则在引入这个分类后直接如下书写即可
self.redView.frameX = 100;
完整代码请参考