iOS小技能(开发规范):app的开发步骤(ios app 开发教程)
今天,六牛科技小编请教了一下开发总监,为大家整理了APP开发的步骤,望参考!
前言
app的开发步骤:
- 搭建界面(应用程序的样本)
- 连线(界面按钮和操作功能进行绑定)
1)IBAction:本质上是void,只不过允许连线而已;使用IBAction增加代码的可读性,明显的确定出方法和事件的连接关系
验证 IBAction 本质上是void的方法:使用void替换IBAction 的即可。
例子:计算按钮的点击事件与代码的计算方法的连线
2)IBOutlet:属性与界面的控件对象的连线(获取和修改控件对象的属性)
- 编写程序实现功能
I 搭建界面
用纯代码开发的过程:https://blog.csdn.net/z929118967/article/details/123086127
确定界面元素,要有什么内容 用代码搭建界面 编写代码
II 连线的建立:IB 与代码的连接
1.在.m文件中书写方法和属性 2. 添加IBOutlet或者IBAction 3. 进行属性、方法与IB的连接
2.1 IBAction在IB中的源码
connections 的子标签:action、outlet
<connections> <action selector="compute" destination="BYZ-38-t0r" eventType="touchUpInside" id="nRR-Ts-mdy"/><!-- destination属性值与viewController标签的ID属性值对应,事件类型为touchUpInside--> </connections>
2.2 IBOutlet的源码
<connections> <outlet property="numLeft" destination="fAv-gN-3wn" id="afF-lT-F3e"/> <!-- outlet 标签的目标属性destination的值与textField标签的ID属性值对应--> <outlet property="numRight" destination="ckV-X6-tGL" id="MIb-xK-6hD"/> <outlet property="resultLabel" destination="zv3-WY-PfL" id="DUL-Fn-rTa"/> </connections>
2.3 方法和属性声明
/** 用来声明属性和方法以及静态界面与代码的关联 代码与界面上的对象进行通信:即代码如何操作界面上的对象--在iPhone平台上引入了IBAction、IBOutlet IB :interface builder 界面搭建 IB修饰符:IBAction & IBOutlet、Outlet connection 三种 IBAction:监听方法与点击按钮事件进行连线--使用IBAction修饰方法,表示该方法与UI界面上的某个监听事件对应 IBoutlet:UIViewController 对象的属性与UI的控件对象进行连线,以便对控件的属性进行获取和修改--与IB的连线:在变量之前加上IBOutlet来表示,该变量与界面上的某个UI对象对应 */#import <UIKit/UIKit.h>@interface ViewController : UIViewController@property (nonatomic,weak) IBOutlet UITextField *numLeft;@property (nonatomic,weak) IBOutlet UITextField *numRight;@property (nonatomic,weak) IBOutlet UILabel *resultLabel;/** 计算方法声明*/- (void) compute;@end
III 编写程序实现功能(方法的实现)
在storyBoard 上的控件按住control 进行与.m文件的连接
加法计算的实现
#import "ViewController.h"@interface ViewController ()@end@implementation ViewController/** 视图加载完成会被执行*/- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. NSLog(@"==========viewDidLoad");}- (IBAction)compute {//与界面计算按钮关联并在监听到用户点击之后,进行数据处理和数据展示 NSLog(@"=====compute"); //1.获取界面的文本框内容 NSString *n1=self.numLeft.text; NSString *n2=self.numRight.text; NSLog(@"n1= %@ n2= %@",n1,n2); //2.内容相加 int result=n1.intValue n2.intValue; NSLog(@"result= %d",result); //3.在右侧标签上显示结果 self.resultLabel.text=[NSString stringWithFormat:@"%d" ,result]; //4.退出键盘 //在所有的面向对象语言中,有一个原则:谁申请,谁释放 //resignFirstResponder : Notifies the receiver that it has been asked to relinquish its status as first responder in its window. 让文本框不再担当第一响应者 //FirstResponder:光标是在的文本框 //resign 辞去 //self.numLeft resignFirstResponder]; // [self.numRight resignFirstResponder]; //Causes the view (or one of its embedded text fields) to resign the first responder status. [self.view endEditing:YES];//yes 参数避免多线程问题}@end
IV app的开发步骤分析
- 搭建界面(应用程序的样本)
- 连线:(视图控制器中)--监听按钮事件
1)IBAction:代码方法(操作)于界面的事件连线-》计算按钮的点击事件与代码的计算方法的连线-- IBAction 本质上是void,只不过允许连线而已;使用IBAction增加代码的可读性,明显的确定出方法和事件的连接关系 验证 IBAction 本质上是void的方法:使用void替换IBAction 的即可
2)IBOutlet:属性与界面的控件对象的连线-》获取和修改控件对象的属性
- 编写程序实现功能--修改图像按钮的属性,来调整它的位置和大小
1)一个UIImage对象代表一张图片,一般通过imageNamed:方法就可以通过文件名加载项目中的图片(PNG格式的图片可以省略扩展名)
UIImage加载图片 :UIImage *image = [UIImage imageNamed:@"btn_01"];
V 开发规范
5.1 修改对象的结构体属性的成员的三个步骤
修改对象的结构体属性的成员步骤
// self.iconButton.frame.origin.y-=10;//OC中,不予许直接修改“对象”(iconButton)的“结构体属性”(frame)的“成员”(origin);但是允许修改结构体属性的成员 //修改对象的结构体属性的成员通常采用以下三个步骤 //1. 从对象取出frame结构体属性 CGRect frame = self.iconButton.frame; //2.修改结构体属性成员 frame.origin.y-=20; //3.将对象的结构体属性进行赋值,达到修改的目的 self.iconButton.frame=frame;
5.2 代码优化
优化习惯手段:先重构且测试完成,再删除原来的旧代码
5.3 避免魔法数字
避免魔法数字(magic number),提高程序的可读性,达到程序的优雅易读
- 使用enum 解决模仿数字: 使用枚举值解决模仿数字问题
- 使用macro 手段避免魔法数字
(六牛科技——高端互联网解决方案提供商)