// self.icoButton.frame.origin.x = 3; 无法修改
//在OC中不允许直接修改对象的结构体属性成员
//但是允许修改结构体属性的成员
//如果要修改对象的结构体属性需要三个步骤
//枚举类型本质上是整数定义的时候,如果之定义了一个数值,后续的数值会一次递增
//枚举类型是解决魔法数据比较常用的
typedef enum{
kMovingDirTop= 10,
kMovingDirBotton,
kMovingDirLeft,
kMovingDirRight,
}kMovingDir;
#define kMovingDelta 20.0
@implementation ViewController
- (IBAction)move:(UIButton *)sender {
//让重复的代码只出现一次
CGRect frame = self.icoButton.frame;
//根据按钮的类型来判断移动的方向
switch (sender.tag) {
case kMovingDirTop:
frame.origin.y -= kMovingDelta;
break;
case kMovingDirBotton:
frame.origin.y += kMovingDelta;
break;
case kMovingDirLeft:
frame.origin.x -= kMovingDelta;
break;
case kMovingDirRight:
frame.origin.x += kMovingDelta;
break;
}
self.icoButton.frame = frame;
}