大家好,我是编程小6,很高兴遇见你,有问题可以及时留言哦。
今天,六牛科技小编请教了一下开发总监,为大家整理了APP开发的步骤,望参考!
app的开发步骤:
1)IBAction:本质上是void,只不过允许连线而已;使用IBAction增加代码的可读性,明显的确定出方法和事件的连接关系
验证 IBAction 本质上是void的方法:使用void替换IBAction 的即可。
例子:计算按钮的点击事件与代码的计算方法的连线
2)IBOutlet:属性与界面的控件对象的连线(获取和修改控件对象的属性)
用纯代码开发的过程:https://blog.csdn.net/z929118967/article/details/123086127
确定界面元素,要有什么内容 用代码搭建界面 编写代码
1.在.m文件中书写方法和属性 2. 添加IBOutlet或者IBAction 3. 进行属性、方法与IB的连接
connections 的子标签:action、outlet
<connections>
<action selector="compute" destination="BYZ-38-t0r" eventType="touchUpInside" id="nRR-Ts-mdy"/><!-- destination属性值与viewController标签的ID属性值对应,事件类型为touchUpInside-->
</connections>
<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>
/**
用来声明属性和方法以及静态界面与代码的关联
代码与界面上的对象进行通信:即代码如何操作界面上的对象--在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
在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
1)IBAction:代码方法(操作)于界面的事件连线-》计算按钮的点击事件与代码的计算方法的连线-- IBAction 本质上是void,只不过允许连线而已;使用IBAction增加代码的可读性,明显的确定出方法和事件的连接关系 验证 IBAction 本质上是void的方法:使用void替换IBAction 的即可
2)IBOutlet:属性与界面的控件对象的连线-》获取和修改控件对象的属性
1)一个UIImage对象代表一张图片,一般通过imageNamed:方法就可以通过文件名加载项目中的图片(PNG格式的图片可以省略扩展名)
UIImage加载图片 :UIImage *image = [UIImage imageNamed:@"btn_01"];
修改对象的结构体属性的成员步骤
// 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;
优化习惯手段:先重构且测试完成,再删除原来的旧代码
避免魔法数字(magic number),提高程序的可读性,达到程序的优雅易读
(六牛科技——高端互联网解决方案提供商)