OC基础之不许直接修改结构体属性

OC语法规定不许直接修改结构体属性 比如下面写法是不允许的:

self.button.frame.origin.y -=5;

那么要怎么修改一个button属性呢,比如我们点击一个按钮,让其Y值向上移动

法一直接在button方法内获取其Frame属性进行修改:

CGRect btframe=self.button.frame; 

btframe.origin.y -=5; 

self.btone.frame=btframe;

同理修改高宽时换成size即可,但这种方法在稍微大点的项目时会很麻烦

法二,新建UIView分类,利用分类属性修改

- (void)setJt_y:(CGFloat)jt_y

{

CGRect rect =self.frame;

rect.origin.y = jt_y;

self.frame = rect;

}

- (CGFloat)jt_y

{

returnself.frame.origin.y;

}

在以后使用时我们只要直接引入分类头文件就可使用,是不是非常方便


self.btone.jt_y+=5;


你可能感兴趣的:(OC基础之不许直接修改结构体属性)