#如何简单粗暴学习开发ios#
Interface Builder 将控件 连接 到代码中21)Cocoa Touch
Cocoa Touch是用于开发iPhone、iPod、iPad程序的类库,大部分是用Objective-C编写,以后写APP主要就得依赖它了。
Cocoa Touch主要支持以下功能:音频,视频,数据管理,图形和动画,网络,无线打印,数据保护,苹果通知服务(需要自己的服务器),本地通知(可以不要求应用程序正在运行),手势识别,iTunes文件共享,蓝牙点对点服务,系统联系人,日历,email,短信,文件,照相机,图库,视频,连接外部显示器,访问网页,Word,Excel文档,加速度计,剪切复制和粘贴,与其他程序交互,对残障人士易用性支持,pdf,设备名称和型号,电池状态,接近传感器,耳机线控,地图,GPS,对等网络,广告,人脸识别,图像过滤,2d和3d动画,内置SQLite数据库。
22)Cocoa Touch的主要类
【NSObject】:根类
【UIApplication】:程序主控制类。是一个单实例。它处理用户事件,维护应用程序的windows列表,处理应用程序的生命周期。通过调用[UI你Application sharedApplication]可以获得该单实例的指针。
【UIWindow】:管理视图的容器。
【UIView】:视图。被添加到UIWindow中,可以通过Interface Builder以可视化方式创建。
【UIResponder】:可以接收事件。屏幕控件都继承自UIResponder。
【UIControl】:所有屏幕控件的父类。
【UIViewController】:管理视图的内容。
23)主要的数据类
【NSString/NSMutableString】字符串。NSString不能修改,NSMutableString创建后可以被修改。
【NSArray/NSMutableArray】数组。语法:msg = [[NSArray alloc] initWithObjects: @"good", @"bad", nil ]; [msg objectAtIndex:1];
【NSDictionary/NSMutableDictionary】字典。语法:dic = [[NSDictionary alloc] initWithObjectsAndKeys: @"good", @"p", @"bad", @"n", nil]; [dic objectForKey:@"n"];
【NSNumber/NSDecimalNumber】数字。语法:num = [[NSNumber alloc] numberWithInt:100];
【NSDate】日期。语法:day = [NSDate date];
24)主要的界面类
【UILabel】标签
【UIButton】按钮
【UISwitch】开关
【UISegmentedControl】分段,(好像类似tab标签)
【UISlider】滑块
【UIStepper】步进
【UITextField】单行文本框
【UITextView】多行文本框
【UIDatePicker/UIPicker】日期选择
【UIPopoverController】弹出框,iPad特有
【UIColor】颜色
【UITableView】列表。但iPhone中没有二维表的概念,每行只有一个单元格
25)支持国际化
26)Interface Builder
Interface Builder帮助我们直观的可视化生成应用程序的界面。
在Xcode(顺便说下版本是7.3.1)中选中Main.storyboard,就可以对界面视图进行可视化设计。Xcode右侧Utilities窗口中,上半部分可以查看和编辑界面元素的各种属性,下半部分有各种可用的控件和Library。基本操作就是把控件拖放到界面上,需要的话在属性窗口中进行一些设置。
Interface Builder创建的界面,自动生成xml文件(在Main.storyboard点击右键,菜单中选择Open As-->Source Code,就可以直接打开xml文件)。这一点Android也是类似的,Android在res/layout目录下放置界面文件,也是xml格式(顺便吐槽下Xcode显示xml文件也没个空行和折叠,看着眼花)。Java则是通过代码创建界面的,不过也可以通过IDE的插件进行可视化编辑。而ios也可以直接用代码写出界面。
27)Interface Builder,可视化编辑将控件连接到代码
IOS称之为连接(connection),其实作用就是向代码中添加控件对应的成员变量、或者事件监听器,毕竟界面也是要融入程序的运行流程当中的。
其它IDE里面都没见过这个玩法。在Xcode工具栏右边的界面布局中,选择“Show the Assistant editor”,可以多打开一个子窗口,同时看到可视化的界面和对应的代码,然后按住ctrl键,同时在设计界面中点击一个控件,拖向代码窗口中。就会出现一个箭头从选定的控件指向鼠标所在的代码行位置。松开鼠标后会弹出对话框,选择要向代码中添加Outlet(成员变量)或Action(事件监听函数),输入变量名或函数名后点击Connect,即可创建该控件对应的成员变量或者事件监听函数。
我比较手贱,多玩了几次,有时一个控件创建多个变量,或者有时拖到.h头文件中,有时拖到.m文件中,都可以创建出来,后来在代码中手工删掉几个多余的东西,运行程序就会报错,或者有时不报错,但界面显示不出来。估计是代码中的定义和界面文件不匹配造成的。翻了一下,在Xcode右边Utilities窗口中,Connections inspector里面有所有已建立的连接,把手工删掉的代码所对应的连接也删掉,两边一致以后就正常了。
在刚才生成的Button的事件响应函数中onClickButton1里面添加代码,修改Label和TextField的内容:_lbHello.text = @"How are you?"; _txtText1.text = @"ios 入门"; 虽然有点疑惑,声明的变量名是“lbHello”(代码:@property (weak, nonatomic) IBOutlet UILabel *lbHello;),为什么函数中访问变量的时候要加下划线变成“_lbHello”(否则报错)?不过既然运行正常,语法细节先不纠结了。嗯,如果哪位朋友知道的话可以顺手告诉我一下,谢谢!
网友评论