- (IBAction)right:(id)sender {
CGRect orx =self.btn.frame;
orx.origin.x +=10;
self.btn.frame = orx;
}//CGRect是结构体类型,要修改对象结构体里面某个变量的值的时候必须先拿到原来的 给新的 改变新的 然后将它赋值给原来的 不能直接修改 如这是错误的 self.btn.frame.origin.x = 10; 这是不行的
//向左边平移,要现将该图片的x,y获得并赋值给一枚举型cgrect orx ,通过orx 改变值之后再将 它赋值给该图片的frame,并不是直接的frame.x等
放大和缩小行为
- (IBAction)enlarge:(id)sender {
CGRect ori =self.btn.frame;
ori.size.width +=10;
ori.size.height +=10;
self.btn.frame = ori;
}
- (IBAction)reduce:(id)sender {//1
CGRect ori =self.btn.frame;
ori.size.width -=10;
ori.size.height -=10;
self.btn.frame = ori; // 2
CGRect ori =self.btn.frame;
ori.size =CGSizeMake(ori.size.width-10, ori.size.height-10);
self.btn.frame = ori;
/* Make a rect from `(x, y; width, height)'. */
CG_INLINE CGRect CGRectMake(CGFloat x,CGFloat y, CGFloat width,
CGFloat height);
//
}
这是 离原点self.btn.frame不变的 长宽 改变的放大缩小, (ps :从这里我们可以推测 按钮既有label 又有imageview 属性 它不是单一视图
storyboard上面连线.m获得图片的属性btnIcon,要实现改变其属性则将btnIcon它放在action里面,先获得该按钮的frame(self.btnIcon.frame),然后再修改,最后将修改的值赋值回去给btnIcon,完成操作,而由于我们在这里想要实现的有 对该控件位置(上下左右)和大小(改变)的多个操作,所以我们可以讲其封装起来,也就是将本质相同表象不同(或者说是思路相同可是数字等的不同)放在一个方法里面,通过switch和tag实现,