UIkit[IOS]

UIKit

1 overview

UIKit Framework ,UIKit框架事ios 为UI而推出的Frame。

UIKit和其他UI框架构造相似,有 窗口,按钮,列表等class。

UIKit 采用 MVC 模式。

UIKit是 Cocoa Touch 的重要部分。

Cocoa Touch 体系结构

2 MVC 模型

MVC Model,MVC全名是Model View Controller,是模型(model)-视图(view)- 控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数 据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面, 在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。 MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个 逻辑的图形化用户界面的结构中。

ModelViewController
应用程序中用于处理应用程序数据逻辑的部分应用程序中处理数据显示的部分应用程序中处理用户交互的部分
通常模型对象负责在数据库中存取数据通常视图是依据模型数据创建的通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据

MVC 各个部分间关系

3 Project Config Basic 项目基本设置

da

4 ios应用的生命期

iOS Application Life Cycle
iOS Application Life Cycle

• willFinishLaunchingWithOptions:告诉代理进程启动但还没进入状态保存
• didFinishLaunchingWithOptions:告诉代理启动基本完成程序准备开始运行
• applicationWillResignActive:当应用程序将要入非活动状态执行,在此期间,应
用程序不接收消息或事件,比如来电话了
• applicationDidBecomeActive:当应用程序入活动状态执行,这个刚好跟上面那
个方法相反
• applicationDidEnterBackground:当程序被推送到后台的时候调用。所以要设置
后台继续运行,则在这个函数里面设置即可
• applicationWillEnterForeground:当程序从后台将要重新回到前台时候调用,这
个刚好跟上面的那个方法相反
• applicationWillTerminate:当程序将要退出是被调用,通常是用来保存数据和一
些退出前的清理工作。这个需要要设置UIApplicationExitsOnSuspend的键值
• applicationDidFinishLaunching:当程序载入后执行

5 视图控制器

View Controller ,视图控制器是在MVC模式下,控制视图逻辑的控制器 ;视图控制器管理视图的层次结构;视图控制器处理视图的用户事件,例如点击、手势等…
视图控制器

6 UIView

UIview 是一个UIkit中最基本的类

UIView
UIWindow
UILabel
UITableViewCell
UIScrollView
UITableView
UITextView
UICollectionView
UIPickerView
UIProgressView
UIActivityIndicatiorView
UIIamgeView
UITabBar
UIToolBar
UIControl
UIButton
UIDatePicker
UIPageControl
UISegmentedControl
UITextfield
UISilder
Switch
UINavigationBar
UIActionSheet
UIAlerView
UIWebView

UIView视图与UIWindows窗口是iOS构造用户界面的组件
iOS应用启动后,创建的第一个视图控件是UIWindow
iOS应用通常只有一个窗口(OS X 程序会有多个窗口)

// An highlighted block

UIView的层次结构

ViewFrom 视图外观属性

//View的外观属性 :
	backgroundcolor //设置视图背景颜色 
	alpha           //设置视图透明度
	hidden          //设置视图隐藏状态

ViewGeometry 视图几何属性,视图控制 UIView的 方法

几何属性
Frame(CGRect) = Origin(CGPoint) + Size(CGSize)
Frame(视图的整体框架)相当于 Origin(视图原点,左上角的点的坐标)加上 Size(视图的尺寸)
layer 视图的层次

	//添加子视图
	addSubView        //在视图最上层添加子视图
	InsertSubView     //在视图特定层次添加子视图
	bringSubView      //移动指定子视图到最前
	sendSubView       //移动指定子视图到最后
	exchangeSubView   //交换两个子视图的层次位置
	
	//删除子视图
	removeFromSuperView//删除子视图,使用子视图的对象的方法
	

7 如何开始构造UI

UI Builder,

7.1 故事板

故事板 Storyboard

Xcode 为我们提供一个简单的可视化的UI设计方法,故事板

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可见:storyboard中 可以直接拖拽 组建进入视图控制器下的 View,(SafeArea,是为了边界不被遮挡,顶部信息不被遮挡的一个功能类)

7.2 自动布局

AutoLayout
我们当然可以使用一些计算来为我们的每一个实例的控制器组件(controller )设置origin point,和 size从而达到优雅的布局,这其实是一种可变的布局,随着设备尺寸的变化,设备的横竖变化,动态的UI需求都能够优美实现。

但这样可能会比较复杂,对于一些简单的应用我们没有这样复杂的需求,使用ios 强大的内置的UI自动布局方法事半功倍。

约束条件
约束
横批竖屏问题
经典案例

7.3 Label

7.4 Button

7.5 Switch

7.6 Segment

7.7 Progress

7.8 Slider

7. 9 Stepper

7.10 Test Field

7.11 Alert & Action 提醒 与动作

7.12 Picker & DatePicker 选择器 以及 日期选择器

日期选择器, 特殊的选择器
• UIDatePicker类对日期选择器进行封装
• date:设置或获取日期时间
• locale:设置时区
• datePickerMode:设置模式
• maximumDate:日期上限
• minimumDate:日期下限

选择器
• UIPickerView类对选择器进行封装
• UIPickerViewDelegate:选择器代理协议
• UIPickerViewDataSource:选择器数据源代理协议
• 常用属性与方法
delegate、datasource:代理属性和数据源代理属性
numberOfComponents(in pickerView: UIPickerView) -> Int
pickerView(_ pickerView: UIPickerView, component: Int) -> Int
pickerView(_ pickerView: UIPickerView, forComponent component: Int) -> String?
ickerView(_ pickerView: UIPickerView, inComponent component: Int)
numberOfRowsInComponent titleForRow row: Int, didSelectRow row: Int,

7.13 Scroll & PageScroll 翻页与滚动

• 当信息在一屏中容纳不下时,可考虑使用滚动视图,顾名思义,该视图 可以在屏幕中滚动
• 在滚动过程中,其实是修改原点坐标
• 有些应用每次显示一页,这时使用滚动视图与页视图配合

• UIScrollView类对滚动视图控件进行封装
• UIScrollViewDelegate:滚动视图代理协议
• 常用属性与方法
contentSize:设置滚动视图的内容尺寸
showsVerticalScrollIndicator:隐藏垂直指示条
showsHorizontalScrollIndicator:隐藏水平指示条

7.14 WebViewControl Web视图控件

• UIWebView类对Web视图控件进行封装
• UIWebViewDelegate:滚动视图代理协议
• 常用属性与方法
loadRequest:加载指定URL的网页

7.15 TableView 表视图

在这里插入图片描述

TableView 上有 Section 单元 ,每个单元又分 Cell 子单元

7.16 Custom View 自定义视图

自定义视图显示三角形
自定义TableView Cell
自定义 TableView and Custom Cell

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值