首先创建一个iOS新工程,删除工程自动创建的main.storyboard以及xib文件,而且在info.plist上删除这两个选项windows
而后在项目配置中将maninterface设置为空,将launch screen file设置为空,新建一个view,命名为ViewController,由于此时已经有自动生成的类ViewController,因此不用新建类设计模式
创建新建xib文件和类的链接,将file own的class修改成ViewControll,修改完成以后才能进行下一步api
链接新建的xib文件的view属性和到file own,是的view与代码关联数组
此时,新的xib就能够生成一个界面对象了mvc
可是启动时还须要指定使用哪个view,方法以下app
在AppDelegate.m文件的didFinishLaunchWithOptions方法中添加如下代码ide
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; ViewController* view = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; self.window.rootViewController = view; self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible];
首先为引用简历windows,而后简历viewController,将窗口的主控制器设置为生成的view,并设置背景颜色,而后显示界面函数
到这里基本完成,可是这样的作法生成的界面可能不匹配,此时还须要在项目配置中的launch screen file修改为咱们创建的主窗口文件,而后启动,就能够摆脱storyboard了字体
UIButton iOS的按钮控件,使用UIButton能够实现按键点击的功能,该控件直接继承自UIControl类,因此拥有UIControl的方法和属性,目前使用的属性包括ui
touch up inside 事件,也就是鼠标的点击事件
获取当前按钮上的文字 titleForState:UIControlStateNormal方法
设置按键不被按下的背景图片 setBackGroundImage image forstate uicontrolstateNormal
设置按键被按下的背景图片 setBackGroundImage image forstate uicontrolstatehighlights
UILabel iOS的文本展现区域
能够直接使用text属性获取控件的文本和设置控件的文本,还能够设置文本的格式
使用NSMutableAttributedString 来生成带格式的字符串,字符串使用setAttrbutes设置属性,lanbel有一个attributeText能够接收格式化字符串
设置字体格式的时候使用字典,字典键是文本类型,值是字体大小
iOS使用mvc设计模式,XIB为view视图,viewcontroller为视图控制器,还有一个model是应用程序委托,也就是appDetegate类,该类包含有几个方法,在应用程序的生命周期中起做用
didFinishLaunchingWithOptions 程序启动子后的自定义设置
applicationWillResignActive 应用程序即将从活动状态切换到不活动状态的触发代码,在该方法中引用程序应该作本身的资源备份
applicationDidEnterBackGround 应用程序进入后台执行
applicationWillEnterForeground 应用程序进入活动状态,也就是从后台恢复
applicationDidBecomeActive 应用程序处于非活动状态的时候从新进入活动状态
applicationWillTerminate 应用程序终止,程序即将中止的时候udiaoyong该方法
其中
didFinishLaunchingWithOptions在应用程序完成了全部的初始化工做并准备好与用户交互的时候,调用这个方法
活动控件 静态控件与被动控件
被动控件:大多数状况下用户不能对其进行任何操做,只是一个展现用界面,例如UIImage控件,固然,通过配置,也能对特定事件作出响应
还有一些控件能够在被动状态工做,可是其自己不会触发方法,而是做为数据的容器,如UITextField控件.
全部iOS控件都是UIControl的子类,由于多点触控的引入,以及触发按下和离开均可以触发不一样的方法
UIView的全部子类都有一个tag属性,该属性只是一个数值,能够再interface builder中设置,也能够在到吗中设置,系统永远不会修改他得值,能够用于简单的区分不一样的控件
UIImageView控件,用于显示图片的控件,包含有如下的属性
1.mode 决定内容在视图内部的显示方式,也就是图像在视图内部的对齐方式,通常使用scall fill 缩放铺满
2.tag 前面描述过,用于相同控件的区分
3.interaction 包含两个选项,第一个user interaction enable 指明当前对象可否和用户进行交互,也就是可否响应一些方法,multiple touch 控件是否支持多点触控事件
4.alpha 定义控件上图片的透明度,也就是图像背后内容的可见度,0彻底透明 1彻底不透明
5,background 肯定视图的背景颜色
6.drawing 包含有一系列绘制选项 opaque 告诉系统控件的背后并无图片须要绘制,而且容许系统加速控件自己的绘制. hidden 隐藏某个对象 clear Graphics context 在绘制对象以前先使用一块全黑的区域来覆盖空间区域 clip subview 加入一个视图view包含有子view ,该复选框决定了子view的绘制方式,选中以后,只有在父view以内的部分被绘制,以外的部分不会参与绘制,不选中,子view所有绘制,无论子视图是否超过父视图的边界
7.autoresize subview 当前视图发生变化的时候自动调整子视图的大小
8,stretching 拉伸,该选项用于从新调整视图大小的时候使用,将视图的外边缘保持不变,仅仅拉伸中间部分,而不是均匀拉伸视图的所有内容
文本显示UILabel控件拥有如下设置属性
1.text :文本显示类型 plaintext 纯文本 attributed text属性文本
2.字体颜色设置,文本对其设置,行数设置
3.
文本输入控件UITextFeild,用于系统输入文本使用
1.placeholder 占位符 占位符的文本是在文本框文本为空的时候自动显示的文本,能够起到提示用户输入什么内容的做用
2.border style 设定文本框的边框显示风格
3.clearbutton设置.设定什么时候出现弹出按钮,能够选着编辑时出现,编辑完成出现,不出现,编辑以后一直可见,clear when editing begin 指定用户触摸时清除文本,即一旦开始编辑就清除以前的文本输入
4.adjust to fit :设定显示文本是否随着文本尺寸的长度增长而减小,选中自后,再编辑过程当中所有文本都是可见的,可是最小不会小于最小字号
5.接下来就是定义输入时键盘的行为 capitalization 使用word保证用户的每一个输入单词的首字母都自动转化成大写,return key 用户结束输入的时候键盘显示的字符,autoenable returnkey 设定当文本为空的时候,return key被禁用
6,secure 只是该输入区域是否为密码输入区域
完成输入关闭键盘
当一个输入区域好比文本框,在用户按下return 按键的时候,说明结束输入,此时会触发一个事件,名称为 Did End On Exit,为该事件设定响应方法,就能实现输入完成自动关闭键盘,例如
- (IBAction)textFieldOnExit:(id)sender { [sender resignFirstResponder];//控件自身放弃第一响应者的控制权并返回给用户以前操做的控件 }
可是使用数字键盘来输入的时候,没有return 按键,此时应该设定用户按屏幕中没有控件的任何空白区域,都能关闭键盘,此时应当设定,触摸背景关闭键盘,想要作到这一点,首先
先要将界面的基类修改成UIControl,(以前是UIView),修改后界面就拥有了响应事件的能力
为VIEW增长touch down事件,事件的响应函数以下
[self.nameField resignFirstResponder]; [self.numberField resignFirstResponder];//将view中的全部占用键盘的地方的响应权全都释放掉
iOS滑动控件UISlider 用于显示滑动,主要事件
valueChanged 当滑块被移动的时候触发该事件,经过value属性就能获得当前的值,值的最大和最小界限都能控制
当使用不一样屏幕适配的时候,为全部的空间添加顶部约束,可以有效地适配不一样设备的界面
分段控件 UISegmentedControl 主要用于在不一样的界面显示不一样的内容,相似于选项卡的一种控件,能够选择分段数量
选择每个分段的标题或者每个分段的图片,分段控件的主要响应动做也是valueChanged,以下
- (IBAction)toggleControls:(UISegmentedControl *)sender { if(sender.selectedSegmentIndex == 0)//经过分段控件的selectedSegmentIndex来决定当前的现实状况,从0开始的显示index { self.leftSwitch.hidden = NO; self.rightSwitch.hidden = NO; self.dosomethingButton.hidden = YES; } else { self.leftSwitch.hidden = YES; self.rightSwitch.hidden = YES; self.dosomethingButton.hidden = NO; } }
开关控件UISwitch,用于显示一个非0即1的状态选择按钮
主要响应方法 valueChanged,以下
-(IBAction)switchChanged:(UISwitch *)sender { BOOL setting = sender.isOn;//获取当前按键的状态,是一个布尔值 [self.leftSwitch setOn:setting animated:YES];//根据状态设定开关状态 [self.rightSwitch setOn:setting animated:YES]; }
iOS操做表单和警告视图
操做表单的做用是要求用户在两个以上的选项之间作出选择,操做表单从底
部出现,显示一系列按钮供用户选择,用户必须点击其中一个按钮才能继续使用,经常使用于确承认能有危险或者不可逆的操做,
使用操做表单必须使用委托,用户必须实现UIActionSheetDelegate协议,以下
@interface ViewController : UIViewController<UIActionSheetDelegate>
生成并显示表单的操做为
- (IBAction)buttonPressed:(id)sender { UIActionSheet* actionSheet = [[UIActionSheet alloc] initWithTitle:@"are you Sure" delegate:self cancelButtonTitle:@"no way" destructiveButtonTitle:@"yes i am sure" otherButtonTitles: @"foo",@"bar",nil]; [actionSheet showInView:self.view]; }
initwithtitle 使用标题初始化,第一个参数为操做表单要显示的标题,字符串对象,第二个delegate 表单的委托对象,当按下表单的某个按钮的时候,对应的委托对象收到数据,这里指定为self,cancelButtonTitle 取消按钮的标题 destructiveButtonTitle 按钮的标题,至关于确认按钮的标题,otherButtonTitle:任意数量的其余按钮,参数是一个数组,必须以nil结束
而后调用action showInView:selfview 为操做表单指定一个父类并显示出来,这里指定本身的view
此时,一个操做表单就显示了.
当用于决定了操做表单的选择的时候,也就是按下了一个肯定的按钮的时候,操做表单会向生成时指定的委托对象发送一个消息,消息名为ActionSheet,咱们继承了
UIActionSheetDelegate协议,就必须实现ActionSheet方法,以下
-(void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex { NSString* msg = nil; if(self.nameField.text.length > 0) { msg = [NSString stringWithFormat:@"you can breathe easy,%@,everything went ok.",self.nameField.text]; } else msg = @"you can breathe easy,everything went ok."; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"something was done" message:msg delegate:self cancelButtonTitle:@"prew" otherButtonTitles:nil]; [alert show]; }
在这个方法中继续以前操做表单的处理,应为actionsheet对象也随之发送过来了,index也有了,因此能获得用户按下的位置
前面的代码中还用到了警告视图,用于提示用户发生了一些不寻常的事情,警告视图能够只显示一个按钮也能够显示多个按钮
initwithtitle 第一个是参数为警告视图的标题 message 警告视图要显示的信息 处理警告视图的委托对象 cancelButtonTitle 取消按钮的标题 otherButtonTitles 其余按钮的标题,数组,以nil结束
警告视图并无和特定的视图绑定在一块儿,因此不须要指定父视图
viewdidload方法在view类中用于处理试图加载完成以后的对视图的额外设置,例如设定图片背景色等等