UI控件
首先介绍一下AppDelegate.swift @UIApplicationMain 调用了OC中的UIApplicationMain函数; UIApplicationMain是iOS应用程序的入口 UIApplicationMain: a.创建了一个UIApplication对象,代表当前应用程序. 作用是用来检测当前应用程序状态的改变。
- 1.在这个方法中来搭建应用程序中的所有的界面
- 2.获取应用程序需要展示的数据
- 3.使用界面展示数据
注意:如果不在这个方法中去创建window,那么程序会通过Main.storyboard去创建应用程序的界面
b.创建一个遵守UIApplicationDelegate的协议的类的对象作为UIApplication的代理,作用是处理应用程序状态的改变(创建AppDelegate对象并且设置为UIApplication对象的代理)
这个里面一个有六个方法分别是 1.当应用程序已经启动成功后,会自动调用这个方法 application 2.当应用程序将要成为非活跃状态的时候会自动调用这个方法。applicationWillResignActive
活跃状态:程序在屏幕上可见 非活跃状态:程序没有显示在屏幕上(按home键进入后台、来电打断、在当前应用程序打开其他的应用程序
3.应用程序已经进入后台的时候会自动调用( 进入后台:按home键)applicationDidEnterBackground
按下home键:command + shift + h 在这个方法中一般去暂停视频/音频播放;游戏需要暂停游戏;保存数据
4.应用程序将要进入前台的时候会自动调用( 进入前台)applicationWillEnterForeground
按两下home键:command + shift + h + h(模拟器)
5.应用程序已经变成活跃状态的时候会自动调用 applicationDidBecomeActive
a.程序启动成功后 b.程序从后台重新进入前台 c.来电打断结束
6.应用程序将要终止的时候会调用applicationWillTerminate
UIview
UIview:是ios中所有视图(控件)直接/间接的父类;所以uiview的属性和方法,对于其他类型的视图都有效 视图:在屏幕上能看见的所有东西属于视图
1.创建UIView的对象
let redView = UIView.init()
2.设置frame属性(由坐标(x,y)和大小(width,height)两部分组成
redView.frame = CGRectMake(10, 10, 100, 100)
a必须设置坐标和大小(默认坐标(0.0),大小(0,0))
b将视图添加到已经展示在屏幕上的视图上
ios中所以的结构都有一个对应的Make方法用来快速的创建一个结构体变量
3.把视图添加到界面上
self.view.addSubview(redView)
4.设置背景颜色
视图的背景颜色默认是透明 CGFloat就是UI中的浮点型 颜色创建方式:a通过类型方法创建指定颜色
redView.backgroundColor = UIColor.greenColor()
b通过三原色创建颜色(red,green,blue:红绿蓝的值(0-1) alpna:透明的值(0-1)
redView.backgroundColor = UIColor.init(red: 30/255.0, green: 133/255.0, blue: 26/255.0, alpha: 1)
总结:计算视图坐标的时候,注意相对性,当前视图被添加到那个视图上那么当前视图的坐标就是相对于谁来算的
相关属性
let readView = UIView.init()
self.view.addSubview(readView)
设置背景颜色
readView.backgroundColor = UIColor.redColor()
1.frame(坐标和大小)
readView.frame = CGRectMake(100, 100, 100, 100)
2.center(中心点) a通过frame和确定视图的中心点坐标
print(readView.center)
b可以通过center的值,取改变视图的坐标
readView.center = CGPointMake(200, 200)
print(readView.frame)
3.bounds(坐标和大小) 默认情况下bounds的坐标是(0.0),大小和视图的frame大小一样
了解: rg改变bouns的大小,frame的大小和坐标都改变,center不变 如果改变bounds的坐标,不影响当前视图的位置。但是影响添加当前视图上的子视图不建议修该bounds
形变
transform(变形):当前视图发生形变,那么添加到当前视图上所有的视图会跟着一起形变 a缩放改变 参数1:x方向上的缩放比例,参数2y方向上的缩放比例
readView.transform = CGAffineTransformMakeScale(0.5, 0.5)
b.旋转(参数旋转角度(圆周率对应的角度值)(0-360 或 0 到 2*M_PI))
readView.transform = CGAffineTransformMakeRotation(CGFloat( M_PI_4))
c:多个变形同时发生 在另外一个形变的前提下旋转 参数1:另外一个形变 参数2:旋转角度
readView.transform = CGAffineTransformRotate(CGAffineTransformMakeScale(0.5, 0.5), CGFloat(M_PI_4/2))
在另外一个形变的前提下平移
readView.transform = CGAffineTransformTranslate(readView.transform, 0, 300)
在另一个形变的前提下缩放
readView .transform = CGAffineTransformScale(CGAffineTransformMakeTranslation(100, 0), 0.5, 2)
组合两个形变
readView.transform = CGAffineTransformConcat(readView.transform, CGAffineTransformMakeTranslation(0.5, 300))
父子视图
MARK:-父子视图的特点和方法 创建黄色视图
let yellView=UIView.init(frame: CGRectMake(0, 0, 50, 50))
yellView.backgroundColor=UIColor.yellowColor()
设置tag值,默认都是0,设置tag值的时候值必须大于0 tag的作用是区分界面不同的视图
redVIew.tag=10
1.一个视图只有一个父视图,可以有多个子视图 连续将同一个视图添加到两个视图。最会添加有效
redVIew.addSubview(yellView)
self.view.addSubview(yellView)
yellView.tag=11
2获取一个视图的父视图
let auperView = redVIew.superview
auperView?.backgroundColor = UIColor.greenColor()
3.获取一个视图的所以子视图
let sub = self.view.subviews
4.通过tga值拿到指定的值的子视图
let sub1 = self.view.viewWithTag(11)
sub1?.frame.origin.y+=200
层次关系
在一个视图上,添加多个子视图的时候,子视图之间如果有公共的部分,那么后添加的子视图会覆盖先添加的 一般情况下,如果想要将一个视图显示在最下面,就最后添加,要想显示在最上面的就最后添加 创建视图
let view1 = self.creatView(CGRectMake(50, 100,100,100), backColor: UIColor.yellowColor())
let view2 = self.creatView(CGRectMake(100, 150,100,100), backColor: UIColor.redColor())
let view3 = self.creatView(CGRectMake(150, 200,100,100), backColor: UIColor.greenColor())
let view4 = self.creatView(CGRectMake(180, 150,100,100), backColor: UIColor.blueColor())
将指定的视图放到最上层
self.view.bringSubviewToFront(view1)
将指定视图放到最下层
self.view.sendSubviewToBack(view3)
将指定的视图插入到另一个视图上面
self.view.insertSubview(view3, aboveSubview: view2)
将指定的视图插入到另一个视图的下面
self.view.insertSubview(view2, belowSubview: view1)
动画
动画 UIView的动画是用来改变动画的视图frame相关属性,背景颜色透明度 形变等 下面介绍4种 创建视图
subView.frame = CGRectMake(0, 0, 100, 100)
subView.center = self.view.center
subView.backgroundColor = UIColor.blueColor()
self.view.addSubview(subView)
layearAction()
UIViewAnimation1()
参数1:动画时间 参数2:延迟时间 参数3:整个动画完成之后自动调用这个方法
func UIViewAnimation1(){
UIView.animateWithDuration(2, animations: {
self.subView.transform = CGAffineTransformMakeTranslation(0, -300)
}) { (_) -> Void in
参数1:动画时间 参数2:延迟时间 参数3:选项 (.Repeat动画重复执行,.Autoreverse自动回到动画开始的状态) 参数4:动画结束时视图状态的闭包 参数5:整个动画过程完成后需要执行的闭包
func UIViewAnimation2(){
UIView.animateWithDuration(1, delay: 0.5, options: [ .Repeat, .Autoreverse,.CurveEaseInOut], animations: {
功能:执行这个方法前视图状态,动画切换到闭包里面设置的最终状态 参数1:动画时间(单位秒) 参数2:设置动画结束是的视图状态
func UIViewAnimation3(){
UIView.animateWithDuration(1) {
参数1:动画时间 参数2:延迟时间 参数3:弹簧板压力系数 参数4:弹簧初始加速度 参数5:选项 参数6:设置动画结束视图状态 参数7:动画结束后执行的闭包
func UIViewAnimation4(){
UIView.animateWithDuration(2, delay: 1, usingSpringWithDamping: 0.1, initialSpringVelocity: 0, options: [ .Repeat, .Autoreverse], animations: { self.subView.alpha = 0.6
self.subView.transform = CGAffineTransformMakeTranslation(0, -300)
self.subView.transform = CGAffineTransformMakeRotation(CGFloat(720))
补充layer 属性是负责视图的形状(显示) 切圆角 当圆角值为正方形的一半,就可以切一个圆 例
func layearAction(){
self.subView.layer.cornerRadius = 20
UIlable
UIlable:UiView -> UIView的属性方法UIlabel 都拥有,从UIView继承下来的属性
补充使用自己字体的步骤 1.将ttf文件拖到工程中 2.在info.plist文件中添加键值对 Fontsprovided by appli 将字体添加到系统字体库 3.通过提供系统名的构造方法取创建字体(要先找到自己添加的字体的字体名
label.font = UIFont.init(name: "HYZhuanShuF", size: 26)
根据文字设置label大小
需要显示在Lable上的文字
let str = "ikdh"
UIImageView
创建UIImageView对象
let img = UIImageView(frame: CGRectMake(100, 100, 200, 300))
帧动画
UIButton(按钮)
文字按钮
图片按钮
let imageButton = UIButton.init(frame: CGRectMake(100, 300, 200, 200))
图片文字按钮
let itbutton = UIButton.init(frame: CGRectMake(100, 500, 200, 200))
self.view.addSubview(itbutton)
itbutton.setTitle("你好", forState: .Normal)
UITextField(文本框)
拓展
extension ViewController: UITextFieldDelegate{
.UISwitch(开关)
func creatSwitch() {
UISlider(滑条)
UIStepper(步进器)
UIProgressView(进度条)
func creatProgress() {
UIActivityIndicatorView(活动指示器)
func creatActivity() {
UISegmentedControl(多段选择器)
func creatSegement() {
以上事件响应
extension ViewController{
|
请发表评论