iOS 管理View
创建: 2018/04/26
完成: 2018/05/03
更新: 2018/05/04 增加UIStackView
更新: 2018/09/18 补充SFSafariViewController需要SafariServeces
| 视图管理器 | |||||||||||||||||||||
| 一个画面一个视图管理器, 管理View | |||||||||||||||||||||
| 画面迁移 | |||||||||||||||||||||
| segue的transition |
|
||||||||||||||||||||
| 视图管理器的生命周期 | |||||||||||||||||||||
| View-Related Notifications |
也叫生命周期方法
顺序: viewDidLoad -> viewWillAppear -> viewWillLayoutSubViews -> viewDidLayoutSubViews -> viewDidAppear -> viewWillDisappear -> viewDidDisappear func lifeCycleDebugTest(string: String) {
|
||||||||||||||||||||
| 状态栏 | |||||||||||||||||||||
| 最上方, 显示时间电量等 | |||||||||||||||||||||
| 样式 |
preferredStatusBarStyle //------------------------------------------------------- |
||||||||||||||||||||
| 是否隐藏 |
prefersStatusBarHidden // 切换显示 prefersStatusBarHidden |
||||||||||||||||||||
| app全局设定 | info -> Custom iOS Target Properties -> 增加View controller based status bar appearance -> Value设为NO | ||||||||||||||||||||
| 方向与旋转 | |||||||||||||||||||||
| supportedInterfaceOrientations |
值
|
||||||||||||||||||||
| 代码设定 |
重写supportedInterfaceOrientations override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
|
||||||||||||||||||||
| 全局设定 | General -> Deployment Info -> Device Orientation | ||||||||||||||||||||
| 导航控制器(navigation controller) | |||||||||||||||||||||
| 导航, 上方有导航栏(navigation bar), 自带返回按钮 | |||||||||||||||||||||
|
把已有viewController 插入导航控制器 |
选中目标视图控制器 -> Editor -> Embed in -> Navigation Controller | ||||||||||||||||||||
| 使用 | 按钮等往其他视图控制器走, 自动添加返回按钮 | ||||||||||||||||||||
| 代码segue移动 |
navigationController?.pushViewController |
||||||||||||||||||||
| tab bar controller | |||||||||||||||||||||
| 直接用 | |||||||||||||||||||||
| 简易使用table view | |||||||||||||||||||||
| 自带UITableViewDataSource, UITableViewDelegate | |||||||||||||||||||||
| 增加编辑功能 |
● 实现编辑按钮 (非必须) (1)先套进navigation controller (2)绑定编辑按钮 位置: viewDidLoad self.navigationItem.rightBarButtonItem = self.editButtonItem ● 实现功能 override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
|
||||||||||||||||||||
| 简易使用collection view | |||||||||||||||||||||
| 和CollectionView差不多 | |||||||||||||||||||||
| 管理page UIPageViewController | |||||||||||||||||||||
|
● 实现协议 extension PageViewController: UIPageViewControllerDataSource {
● 创建并展示 //ViewDidLoad |
|||||||||||||||||||||
| alert | |||||||||||||||||||||
@IBAction func showSampleAlert(_ sender: UIButton) {
|
|||||||||||||||||||||
| action sheet | |||||||||||||||||||||
@IBAction func showSampleActionSheet(_ sender: UIButton) {
|
|||||||||||||||||||||
| 选择图象(UIImagePickerController) | |||||||||||||||||||||
|
● 需要允许接入相册 设定请求权限时表示的信息 [Info] -> [Custom iOS Target Properties] -> 添加 [Privacy - Photo Library Usage Description] -> 在值处设置请求权限时表示的信息 ● 扩张 extension ImagePickerControllerViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {
● 按钮的处理 @IBAction func chooseImage(_ sender: UIButton) { // 选择图象
|
|||||||||||||||||||||
| 用别的应用来打开(UIActivityViewController) | |||||||||||||||||||||
@IBAction func shareSelf(_ sender: UIButton) {
|
|||||||||||||||||||||
| 显示网页(SFSafariWebViewController) | |||||||||||||||||||||
| 需要的头文件 |
import SafariServeces |
||||||||||||||||||||
@IBAction func showWebPage(_ sender: UIButton) { // SFSafariWebViewController
|
|||||||||||||||||||||
| UIStackView | |||||||||||||||||||||
| 排列子View | |||||||||||||||||||||
iOS 管理View的更多相关文章
- iOS Programming View Controllers 视图控制器
iOS Programming View Controllers 视图控制器 1.1 A view controller is an instance of a subclass of UIVi ...
- iOS 设置View阴影
iOS 设置View投影 需要设置 颜色 阴影半径 等元素 UIView *shadowView = [[UIView alloc] init]; shadowView.frame = CGRectM ...
- iOS圆角view的Swift实现(利用Core Graphics绘制)
iOS圆角view的Swift实现(利用Core Graphics绘制) 因为app的列表用用到了圆形图片的头像,所以去探究并思考了一下这个问题.首先这个问题有两个方向的解决方案: 把图片弄成圆形的. ...
- iOS Programming View and View Hierarchy 视图和视图等级
iOS Programming View and View Hierarchy 视图和视图等级 1.1(1)File → New → Project.. From the iOS section, ...
- iOS Container View Controller
一.UIViewController 做iOS开发的经常会和UIViewController打交道,从类名可知UIViewController属于MVC模型中的C(Controller),说的更具体点 ...
- android 和iOS的view上的区别
android上的view的类叫View, 以下是它的class overview, This class represents the basic building block for user i ...
- 图解Android - Android GUI 系统 (2) - 窗口管理 (View, Canvas, Window Manager)
Android 的窗口管理系统 (View, Canvas, WindowManager) 在图解Android - Zygote 和 System Server 启动分析一 文里,我们已经知道And ...
- iOS开发——View的透明属性hidden、alpha、opaque
Hidden.Alpha.Opaque的区别 在iOS中,每个View都有Hidden.Alpha.Opaque三个关于透明的属性,官方文档介绍如下: 1. @property(nonatomic) ...
- ios应用view之间数据传递的方式
对于不同的viewcontroller之间数据的共享和处理 采用代理的方式,子viewcontroller设计代理协议,并定义协议接口,父viewcontroller实现协议接口,实现子视图控制器退出 ...
随机推荐
- 基于源码学习-fighting
今天逛着逛着,看到个培训网站,点进去和客服人员聊了一下.接着,看了看他们的培训课程,想了解一下 嵌入式开发的. (人就是要放空自己,把自己当做什么都不会,当着个婴儿[小学生]一般认真,要学什么知识就是 ...
- stl_内存基本处理工具
内存基本处理工具 STL定义5个全局函数.作用于初始化空间上.各自是:用于构造的construct(),用于析构的destroy(),uninitialized_copy(),uninitialize ...
- 汉澳sinox不受openssl心血漏洞影响并分析修复其漏洞代码
OpenSSL 心血(HeartBleed)漏洞 是openssl 在 2014-04-07 发布的重大安全漏洞(CVE-2014-0160)这个漏洞使攻击者可以从server内存中读取64 KB的数 ...
- hiberinate二级缓存
hibernate.cfg.xml配置 <!-- 二级缓存类型 --> <property name="hibernate.cache.region.factory_cla ...
- [转载]php中深拷贝浅拷贝
转自:http://cnn237111.blog.51cto.com/2359144/1283163 PHP中提供了一种对象复制的操作,clone.语法颇为简单: $a = clone $b; 1.浅 ...
- Spyder的汉化
我准备写下spyder的汉化问题:对于英文大佬,从来没得汉化问题,但是对于新手和英语差的来说,汉化还是有必要,至少用汉化过得软件能快速掌握软件等.后期会用软件了在慢慢习惯英文也不迟...哈哈哈哈.本文 ...
- ARC机制之__strong具体解释
ARC机制之__strong具体解释 __strong 解析: 默认情况下,一个指针都会使用 __strong 属性,表明这是一个强引用.这意味着,仅仅要引用存在,对象就不能被销毁.这是一种所期望的 ...
- Hero In Maze
Hero In Maze 时间限制(普通/Java):1000MS/10000MS 执行内存限制:65536KByte 描写叙述 500年前,Jesse是我国最卓越的剑客. 他英俊潇 ...
- http权威指南(一)-Http概述
Http概述 在Web中,不管是浏览器还是server都是通过Http相互通信的.那么Http是怎样工作的呢? 首先,client向server发送Http请求,server会在Http响应中回送所请 ...
- MapReduce算法形式一:WordCount
MapReduce算法形式一:WordCount 这种形式可以做一些网站登陆次数,或者某个电商网站的商品销量啊诸如此类的,主要就是求和,但是求和之前还是要好好清洗数据的,以免数据缺省值太多,影响真实性 ...