ios UI 基础开发一

目录

第一节:基础库

第二节:弹出模拟器的键盘

第三节:模拟器回到桌面

第四节:Viewcontroller 与 View 的关系

第五节:快捷键

第六节:键盘召回

​第七节:启动流程+xcode介绍

 第八节:UIButton的基本使用

代码设置按钮的不同状态的属性

第九节:开启动画

第十节:代码创建UIButton

第十二节:安装模拟器不同的系统 

第十三节:transform 属性

第十四节:UIView 常见的属性

第十五节:从plist 里面读取数据

创建plist 文件

​懒加载

读取plist 文件

第十六节:UIImageView 播放动画

与UIButton的对比

​第十五节:UILabel

自动换行

第十六节:九空格

​获取控件的最大x/y 值 CGRectGetMaxX/Y

 第十七节:xib

字典转model

xib创建 

xib的生命周期

第十八节:状态栏

第十九节:Snippet

​第二十节:NSArray

第二十一节:UIAlertView、UIAlertController、UIAlertViewDelegate

第二十二节:@2x 和 @3x

第二十三节:设置app icon 和 launch screen

第二十四节:UIScrollView

监听滚动事件 UIScrollViewDelegate

UIScrollView缩放

UIScrollView分页、UIPageView

第二十五节:NSTimer

​第二十六节:UITableView、UITableViewCell

设置table View 、UITableViewDelegate

设置UITableViewCell

刷新数据

​滚动到哪一行

第二十七节:重用UITableViewCell

第二十八节:KVC

第二十九节:通过xib 创建UITableViewCell

第三十节:Activity Indicator View

​第三十一节:给table view  添加footer view

第三十二节:dispatch

第三十三节:UITableViewController

第三十三节:通过代码创建UITableViewCell

根据文字的多少,计算lable框的高宽

第三十四节:CGRect的库​

第三十五节:声明的UI控件属性为什么要用weak 属性

第三十六节:UI空间的delegate 属性为什么必须是weak

第三十七节:图片的拉伸方式

第三十八节:UITextFieldView 

设置光标离左边有一段间距

第三十九节:NSNotificationCenter、NSNotification

​监听键盘通知

第四十节:UIDevice

第四十一节:静态单元格

设置header view

折叠header View

刷新数据

第四十二节:自动布局

用代码设置约束 

创建约束动画 


第一节:基础库

ios UI 基础开发一_第1张图片

按住option 键拖动控件,能快捷复制控件

第二节:弹出模拟器的键盘

command+k

ios UI 基础开发一_第2张图片

第三节:模拟器回到桌面

command+shift+h

第四节:Viewcontroller 与 View 的关系

ViewController 用来管理View,View 只是用来显示数据的

ios UI 基础开发一_第3张图片

第五节:快捷键

按住control 键,从storyboard 把控件往类extension里面拖拽,会生成对应的连接,并且会生成对应方法的实现

属性选择Outlet,按钮事件是Action

ios UI 基础开发一_第4张图片

ios UI 基础开发一_第5张图片

第六节:键盘召回

谁唤醒的键盘,谁就是第一响应者,召回的时候,就是切换第一响应者

第七节:启动流程+xcode介绍

首先查看启动哪个launch screen

launch screen 是启动画面之前的图

ios UI 基础开发一_第6张图片

 然后启动哪个view controller ,有箭头的就是初始化的view controller,如果有多个vc,可以拖拽 

ios UI 基础开发一_第7张图片

  启动哪个View controller 的那个类

ios UI 基础开发一_第8张图片
ios UI 基础开发一_第9张图片

ios UI 基础开发一_第10张图片

 第八节:UIButton的基本使用

ios UI 基础开发一_第11张图片

ios UI 基础开发一_第12张图片当一个oc对象,里面有一个属性是结构体,必须先获取到,改了再赋值,因为是值类型,不能直接调用setter 方法

 Frame 是左上角的位置,Center 是物体的中心点坐标,bound 是以中心点的高宽

ios UI 基础开发一_第13张图片

image 和 bgimage 的区别:bg 会随着按钮大小变化而变化,image不会 

代码设置按钮的不同状态的属性

一定是一个方法,不能通过.语法去设置,因为该方法一定至少有2个参数,一个是属性,一个是状态

ios UI 基础开发一_第14张图片

ios UI 基础开发一_第15张图片 ios UI 基础开发一_第16张图片

ios UI 基础开发一_第17张图片

ios UI 基础开发一_第18张图片

第九节:开启动画

ios UI 基础开发一_第19张图片 中间的执行的动画的代码,是最终的赋值代码

ios UI 基础开发一_第20张图片

ios UI 基础开发一_第21张图片

第十节:代码创建UIButton

ios UI 基础开发一_第22张图片 不同的按钮有不同的state,所以设置的时候要根据不同的state 设置属性,比如color,textios UI 基础开发一_第23张图片ios UI 基础开发一_第24张图片

ios UI 基础开发一_第25张图片

第十二节:安装模拟器不同的系统 

SDK的位置:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/

第十三节:transform 属性

transform 的坐标系原点,是原始的坐标,就是变动之前的都是0,是本身的坐标系,和center一样

 ios UI 基础开发一_第26张图片

第十四节:UIView 常见的属性

ios UI 基础开发一_第27张图片 ios UI 基础开发一_第28张图片

第十五节:从plist 里面读取数据
创建plist 文件
ios UI 基础开发一_第29张图片 懒加载

ios UI 基础开发一_第30张图片

读取plist 文件

ios UI 基础开发一_第31张图片 ios UI 基础开发一_第32张图片

第十六节:UIImageView 播放动画

 ios UI 基础开发一_第33张图片ios UI 基础开发一_第34张图片

imageNamed和imageWithContentFile的区别是:  一个使用缓存的方式,一个不是用缓存的方式 

imageWithContentFile 传入的路径参数,不能放在assets 文件夹下,要另新建一个Group,把图片放进去

 copy  和 strong  都是强引用ios UI 基础开发一_第35张图片

与UIButton的对比
ios UI 基础开发一_第36张图片 第十五节:UILabel
自动换行

ios UI 基础开发一_第37张图片

第十六节:九空格
ios UI 基础开发一_第38张图片 获取控件的最大x/y 值 CGRectGetMaxX/Y

 第十七节:xib
字典转model

ios UI 基础开发一_第39张图片

ios UI 基础开发一_第40张图片

ios UI 基础开发一_第41张图片

xib创建 

类似unity 里面的prefab ,重复使用 UI界面的

ios UI 基础开发一_第42张图片

ios UI 基础开发一_第43张图片

ios UI 基础开发一_第44张图片

ios UI 基础开发一_第45张图片 ios UI 基础开发一_第46张图片

xib的生命周期

ios UI 基础开发一_第47张图片

第十八节:状态栏

 ios UI 基础开发一_第48张图片

第十九节:Snippet

选中代码,右键,create code snippet,<#内容#> 这样会高亮显示,下次创建的时候,自动会高亮显示该内容

 第二十节:NSArray

让数组里面的 object 执行某个方法 makeObjectsPerformSelector

第二十一节:UIAlertView、UIAlertController、UIAlertViewDelegate

索引从0开始 

UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"My Alert"
                               message:@"This is an alert."
                               preferredStyle:UIAlertControllerStyleAlert];
 
UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault
   handler:^(UIAlertAction * action) {}];
 
[alert addAction:defaultAction];
[self presentViewController:alert animated:YES completion:nil];
 第二十二节:@2x 和 @3x

ios UI 基础开发一_第49张图片

为什么有一个点坐标系,因为如果写代码的时候,初始化frame 的时候,如果是像素坐标系,则不同的屏幕上表现得效果不一样,不会适配,而点坐标系,IOS系统 会自动检测对应的像素,从而达到适配效果

ios UI 基础开发一_第50张图片

ios UI 基础开发一_第51张图片

第二十三节:设置app icon 和 launch screen

launch screen  的原理:截了一张图,当做屏幕启动图,通过NSHomeDirectory 获取该截图所在地址

第二十四节:UIScrollView
ios UI 基础开发一_第52张图片ios UI 基础开发一_第53张图片ios UI 基础开发一_第54张图片ios UI 基础开发一_第55张图片ios UI 基础开发一_第56张图片ios UI 基础开发一_第57张图片

 ios UI 基础开发一_第58张图片

ios UI 基础开发一_第59张图片
监听滚动事件 UIScrollViewDelegate

ios UI 基础开发一_第60张图片ios UI 基础开发一_第61张图片

 ios UI 基础开发一_第62张图片

UIScrollView缩放

ios UI 基础开发一_第63张图片 ios UI 基础开发一_第64张图片

也就是在 viewForZoomingInScrollView 方法返回当前缩放的对象,也就是告诉scroll View 当前缩放的对象,比如 return  self.imageView 

 

ios UI 基础开发一_第65张图片

UIScrollView分页、UIPageView

 原理:它默认认为UIScrollView的一个宽度为一页ios UI 基础开发一_第66张图片

ios UI 基础开发一_第67张图片

加一半的目的,是为了在大于半页的时候,下面的点 就+1 

ios UI 基础开发一_第68张图片

第二十五节:NSTimer

 ios UI 基础开发一_第69张图片ios UI 基础开发一_第70张图片

 content offset  用动画方式滚动

ios UI 基础开发一_第71张图片 

问题一:当view 下有两个scroll view,一个用到了nstimer计时器,当拖动scroll View 的时候,nstimer  就停止了

原因:nstimer 的优先级< ui 控件,所以拖动UI 控件的时候 ,UI线程不会去执行nstimer,解决方式,设置nstimer 的优先级和UI一样

第二十六节:UITableView、UITableViewCell

ios UI 基础开发一_第72张图片ios UI 基础开发一_第73张图片

 

ios UI 基础开发一_第74张图片 ios UI 基础开发一_第75张图片

ios UI 基础开发一_第76张图片

ios UI 基础开发一_第77张图片
设置table View 、UITableViewDelegate
ios UI 基础开发一_第78张图片 ios UI 基础开发一_第79张图片
设置UITableViewCell

ios UI 基础开发一_第80张图片

ios UI 基础开发一_第81张图片

ios UI 基础开发一_第82张图片

 

ios UI 基础开发一_第83张图片

刷新数据

刷新的原理:把原来的数据删掉,然后再把新数据添加上

滚动到哪一行

第二十七节:重用UITableViewCell

ios UI 基础开发一_第84张图片 加个static ,让ID 指针不反复的销毁,创建

类似abcd......对应组的索引

ios UI 基础开发一_第85张图片
第二十八节:KVC

 根据字典里的键找到对应类对象里的属性,赋值

 ios UI 基础开发一_第86张图片

好处:属性名能单独提出来,当个变量 

ios UI 基础开发一_第87张图片

ios UI 基础开发一_第88张图片

 

第二十九节:通过xib 创建UITableViewCell

ios UI 基础开发一_第89张图片

 自定义xib 绑定的类

第三十节:Activity Indicator View

默认不转圈

ios UI 基础开发一_第90张图片 第三十一节:给table view  添加footer view

规范:

  • 协议就在在interface里面,这样导入一个头文件,就都导入了
  • 至少有一个参数,就是该控件自己
  • 方法名以本类开头

ios UI 基础开发一_第91张图片

第三十二节:dispatch

第三十三节:UITableViewController

是View controller 和 UITableView 的结合体,默认设置好了协议和数据源,默认有tableview属性

创建一个类继承自 UITableViewController,会自动继承了协议,并实现了协议方法

第三十三节:通过代码创建UITableViewCell

重写initWithStyle方法,并把创建的View  添加到contentView里面

ios UI 基础开发一_第92张图片
根据文字的多少,计算lable框的高宽

ios UI 基础开发一_第93张图片 第三十四节:CGRect的库
第三十五节:声明的UI控件属性为什么要用weak 属性

因为在用storyboard 的时候,其实是执行了代码 addsubview 把view 添加到了vc 里面,已经有一个强指针引用了,如果通过拖线创建属性的时候,再使用strong,这样就会有两个强指针指向该控件了,这样没有问题,但没必要。

第三十六节:UI空间的delegate 属性为什么必须是weak

ios UI 基础开发一_第94张图片

ios UI 基础开发一_第95张图片第三十七节:图片的拉伸方式

第三十八节:UITextFieldView 
设置光标离左边有一段间距

只需要让左边有一个view,这样进来的时候光标就在view右边

ios UI 基础开发一_第96张图片

ios UI 基础开发一_第97张图片

第三十九节:NSNotificationCenter、NSNotification

通知都是相对于对象的,不管发送还是监听,通过NSNotificationCenter去操作

ios UI 基础开发一_第98张图片ios UI 基础开发一_第99张图片

ios UI 基础开发一_第100张图片

ios UI 基础开发一_第101张图片 监听键盘通知

ios UI 基础开发一_第102张图片ios UI 基础开发一_第103张图片

ios UI 基础开发一_第104张图片 ios UI 基础开发一_第105张图片

第四十节:UIDevice

ios UI 基础开发一_第106张图片 

第四十一节:静态单元格

 

ios UI 基础开发一_第107张图片 ios UI 基础开发一_第108张图片

设置header view
 ios UI 基础开发一_第109张图片ios UI 基础开发一_第110张图片ios UI 基础开发一_第111张图片
折叠header View

ios UI 基础开发一_第112张图片

刷新数据

ios UI 基础开发一_第113张图片

第四十二节:自动布局

ios UI 基础开发一_第114张图片 ios UI 基础开发一_第115张图片

用代码设置约束 

ios UI 基础开发一_第116张图片ios UI 基础开发一_第117张图片ios UI 基础开发一_第118张图片

创建约束动画 

ios UI 基础开发一_第119张图片

你可能感兴趣的:(SDK,ios)