0811-按钮操作(加法计算器)(拖控件找控件代码属性名称)(frame center bounds)(上下左右移动button图片)
--------------------
加法计算器 实现步骤
1、拖控件 改textField键盘属性为numberPad ,label双击修改名称自动缩小尺寸 改属性名称不会改尺寸, 放到 View控件中(view控件背景色设置为灰色),
iphone4s
模拟器开启后 window->scale->50%
2、automatic viewController.h -> (IBAction)compute方法连线 (.h文件中void改成IBAction 就可以连线了 .h中的方法也可以用IBAction连线)
3、viewController.h -> @property (nonatomic, weak) IBOutlet UITextField *num1; 属性连线
4、
- (IBAction)compute { NSLog(@"compute"); NSString *num1 = self.num1.text; NSString *num2 = self.num2.text; NSLog(@"%@ === %@",num1,num2); int result = num1.intValue + num2.intValue; self.result.text = [NSString stringWithFormat:@"%D",result];
// 退出键盘
[self.view endEditing:YES];
// 等同于下面
// [self.num1 resignFirstResponder];
// [self.num2 resignFirstResponder]; }
5、viewController.h中 @property (nonatomic, weak) IBOutlet UITextField *num1; 可以放到viewController.m中变成私有扩展
只要viewController.m 中- (IBAction)compute{} 连线了 , viewController.h中的 - (IBAction)compute;就可以省略
6、一个项目中有2个storyboard ipad.storyboard iphone.storyboard实现一个应用程序在2种设备上跑
新建项目选择 universal 加入iphone.stroyboard和ipad.storyboard 修改启动选项为iphone 或ipad即可实现一个应用程序既可以在iphone上也可以在ipad上跑
7、source control -> commit source control-> history
版本编辑器 不同提交时间代码比对
999:额外知识,不用管:
【IB: interface builder 界面搭建的意思 以前storyboard界面 单独为一个应用程序 作为界面搭建的 现在集成到了xcode中
UIViewController管理UIView
】
--------------------------------
二、拖控件找控件代码属性名称
拖控件-》查看uilabel控件属性中文名称 ctrl+command+o 搜索uilabel 进入uilabel.h 找到属性 对应的真实代码名称
-----------------------------
三、frame center bounds
frame 相对于父视图 左上角坐标 宽高 使用自动布局后就用的少了 不推荐用这个了
bounds自己的位置就是自己的左上角 0 只需知道自己的大小即可
center子视图占据父视图的中心位置
--------------
按钮操作 13 上下左右移动button图片
步骤:
1、导入素材到image.assets (小批量的高画质png图片) (直接mac中的图片文件夹到image.assets里 图片文件夹名称代码中无意义)
2、拖控件 设置button属性为custom
3、连线4个箭头方法用一个方法 , 给每个箭头设置tag, 让图片动起来
- (IBAction)move:(UIButton *)button { // 取出frame CGRect frame = self.image.frame; switch (button.tag) { case kMovingTop: frame.origin.y -=kMovingDistance; // 修改frame break; default: break; } //重新设置frame self.image.frame = frame; }
4、移动量用宏定义 上下左右数值用枚举数值 (枚举本质就是整数)
typedef enum { kMovingTop = 11, kMovingLeft = 12, kMovingRight = 13, kMovingBottom = 14, }kMoving; #define kMovingDistance 20