OC中修改 对象的结构体属性
2016-04-29 13:37
274 查看
// 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;
}
无法修改
//在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;
}
相关文章推荐
- android自定义alertdialog的四角
- SourceTree推送时一直提示输入密码
- 瞎比比系列---1st
- 实现点击箭头,展示更多text内容
- 【JAVA】 标注(Annotation)
- 如何在Windows访问VMware里面的应用
- Win7驱动安装时的信任列表管理
- IBM Lotus Domino V8.5 服务器管理入门手册
- Android的MVP框架(MVPExtend)
- CodeForces - 282A Bit++ (水)
- 多TAB可悬浮头控件
- Myeclipse中java项目转换为Web项目
- linux 运维总结
- 好书推荐--感性
- Why objc_msgSend Must be Written in Assembly
- 【Netty4 简单项目实践】四、添加Log工具-SL4J
- ubuntu 14.04 64位编译android版Kodi
- Task Self moniter
- HDU 2023 求平均成绩(数学统计题)
- 安卓自定义View进阶 - 贝塞尔曲线