标题 图片移动代码的优化
主题
用一个方法完成向四个方向的操作
在viewcontroller.m文件中
@interface
//因为只在本页面中使用该方法,所以放在延展类中
//将上下左右的操作合并为一个
//在不取消之前链接的情况下(可能比较少,代码会锁定到关联),关联move函数会报错
/*
2016-05-05 19:46:49.686 按钮控制图片操作[1251:87930] -[ViewController up]: unrecognized selector sent to instance 0x7a93a870
(调用了不存在的up方法)如果实现了move方法也可能会报之前的错
*/
//当用一个方法监听按钮点击的时候,我们如果传入一个参数,那么我们会把点击的按钮当成参数传递
-(IBAction)move:(UIButton *)btn;
@implement
//虽然返回值是void,但是依然可以关联函数,点击按钮就能响应相关的操作
//当用一个方法监听按钮点击的时候,我们如果传入一个参数,那么我们会把点击的按钮当成参数传递
-(IBAction)move:(UIButton *)btn{
NSLog(@"move");
//if(btn.frame.origin.x = )
//不能这么通过按钮的坐标判断
//通过给按钮取名(设置tag值来区分按钮)tag值一般是整数,设定
//上的tag=10
// 下 tag = 20
// 左 tag = 30
// 右 tag = 40
//取出临时值
CGRect tempFrame = self.head.frame;
//临时值变化
//此处也可以用if语句,但是可读性差,一般只有一级if else
//好处,设定margin变量,方便与改变变化的值
CGFloat margin = 10;
switch (btn.tag) {
case 10:
tempFrame.origin.y -= margin;
break;
case 20:
tempFrame.origin.y += margin;
break;
case 30:
tempFrame.origin.x -= margin;
break;
case 40:
tempFrame.origin.x += margin;
break;
}
//覆盖原值
self.head.frame = tempFrame;
}