首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

UIViewController生命周期

二、生命周期 0、init UIViewController-init不要出现创建view的代码。良好的设计,在init里应该只有相关数据的初始化,而且这些数据都是比较关键的数据。...1、loadView loadView方法是用来负责创建UIViewController的view 首先,[super loadView]会先去查找与UIViewController相关联的xib文件,...通过加载xib文件来创建UIViewController的view 如果没有找到相关联的xib文件,就会创建一个空白的UIView,然后赋值给UIViewController的view属性 默认不用实现...继承关系来看,UIWindow继承自UIView,所以UIWindow除了具有UIView的所有功能之外,还增加了一些特有的属性和方法,而我们最常用的方法,就是在App刚启动时,调用UIWindow的...2、UIWindow的主要作用有: 1.作为UIView的最顶层容器,包含应用显示所有的UIView; 2.传递触摸消息和键盘事件给UIView; 把view添加到uiwindow 3、把view

1.8K10
您找到你想要的搜索结果了吗?
是的
没有找到

【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)

连接方法 :  -- 打开辅助编辑器 :  -- 辅助编辑器界面 : 左边显示 界面设计文件, 右边显示 UIViewController 类; -- 拖动控件 UIViewController...UILabel 控件布局中删除 [[self.labels lastObject] removeFromSuperview]; // UILabel 控件集合中删除...自定义 UI 控件 (1) 自定义组件简介 自定义组件简介 :  -- UIView 基类 : 所有的 UI 控件都继承了 UIView 基类, UI 组件在 UIView 提供的空白区域上绘制具体的细节...; -- 适用情况 : 在 IOS 系统提供的组件不满足需求时, 就需要自定义组件; (2) UIView 基类常用方法 UIView 基类常用方法简介 :  -- "initWithFrame :"..., 使用 command + option + 3 打开身份检查器, 由身份检查器上可以看到 其 Custom Class 属性为 UIView, 因此该界面的根控件时 UIView; -- 创建自定义

4.9K30

《iOS UI 开发捷径 利用 Interface Builder 高效、优雅地开发 UI》 读书笔记第1章 Interface Bundle 概要第2章 使用 Interface Builder第3

关联 xib 文件与源文件 关联 xib 文件与 UIView 子类的源文件 新建一个空的xib文件,拖一个UIView上去 新建一个继承自UIView的源文件 选中xib文件里的View,把class...mvc 理解 File's Owner 关联 xib 文件与 UIViewController 子类的源文件 自定义一个 VC 的 View 的两种方法 在 IB 文件中选中 VC 所在的 View,在...既可以与 UIView 关联,也可以与 UIViewController 关联,也可以同时关联 UIViewUIViewController 使用 xib 通过 Bundle 方式加载 通过...UINib 方式加载 使用UIView子类源文件关联的xib Bundle - (NSArray *)loadNibNamed:(NSString *)name...UIView view.addSubview(testView) } 使用UIViewController 子类源文件关联的 xib Demo HomeViewController.swift

2.4K80

如何把设计图自动转换为iOS代码? 在线等,挺急的!

* 使用方法: 在xib或storyboard中,某一用于占位的view的 custom class 设为对一个的 component, 则初始化时,会自动使用此component对应的xib文件中的内容去替换对应位置...< 是否是测试.如果是,优先使用 virtualModel来替换model.系统内部处理.默认为NO. /** * 初始化. * * 子类需要继承此方法,以完成自定义初始化操作....* * @param isFromXib 是否xib或sb初始化此类. * * 注意: 无论此类是否xib或sb初始化,组件内部都将从xib文件初始化.....此时应把XIB的File's Owder与自定义的MCComponent关联起来.按照以上步骤,即可实现图示效果....目前能得到的效果 视图基于 AutoLayout; 视图自动适配不同屏幕尺寸; 视图完全独立于数据与业务逻辑; 视图严肃仅与父视图有位置关系; 可以视图模块的元素与模块同名属性自动关联; 仅需知道父视图的宽高

1.3K60

编码篇-iOS开发中的奇巧小伎

9.动态方法的动态执行 10.isKindOfClass和isMemberOfClass的区别 11.Label字体大小 12.为UIView某个角添加圆角 13.一个view放置在其兄弟视图的最上面...44、让正在滑动的scrollView停止滚动(不是禁止,而是暂时停止滚动) 45、使用xib设置UIView的边框、圆角 46、一个xib添加到另外一个xib上 47、处理字符串,使其首字母大写...xib设置UIView的边框、圆角 ?...image 46、一个xib添加到另外一个xib上 // 假设你的自定义view名字为CustomView,你需要在CustomView.m中重写 `- (instancetype)initWithCoder...一个xib添加到另外一个xib上 47、处理字符串,使其首字母大写 NSString *str = @"abcdefghijklmn"; NSString *resultStr; if (str &&

5.3K10

iOS-UIWindow详解

1.UIWindow简介 UIWindow是一种特殊的UIView,通常在一个app中至少会有一个UIWindow。...iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的View,最后控制器的View添加到UIWindow上,于是控制器的View就显示在屏幕上了。...那么UIWindow是如何View显示屏幕上的呢 这里有三个重要的对象UIScreen,UIWindow,UIView。...UIScreen对象识别物理屏幕连接到设备 UIWindow对象提供绘画支持给屏幕 UIView执行绘画,当窗口要显示内容的时候,UIView绘画出他们的内容并附加到窗口上。...当发生屏幕旋转事件的时候,UIapplication对象会将旋转事件传递给UIWindow,UIWindow又会将旋转事件传递给它的根控制器,由根控制器决定是否需要旋转。

1.9K40

iOS 关于Interface Building 的一些小技巧

纯代码UI -> 最初的Xib -> StoryBoard ,感受到UI的搭建也是逐渐可视化,简单化。我是一个可视乎开发的支持者,有一些朋友不喜欢,这个纯属个人爱好,风格不同。...约束:三个Button等宽等高,均匀分布屏幕,关键点是Tab3的约束 优先级的作用简单总结一下:一个元素可以同时存在两个相同作用的约束,优先级必须有先后,当其中一个失效,另一个就会使用,这样当我们删除相关元素...这时候就会报,上文所说的错误,修改一个优先级即可,我们想让Label1拉伸,所有Label2的抗拉伸优先级调高成252,同理你可以Label1调成249。 ?...有时候我们想在XIb里直观修改Xib属性,但是Xcode并不全部提供属性修改,可以通过Keypath修改,但是键入太麻烦容易出错,所以可以通过IBInspectable添加自定义属性。...step2: 修改Cell 为想要的类型,然后复制Section Cell,修改数据,组合即可。

1.7K31

iOS 面向协议方式封装空白页功能

为了良好的交互体验,相信大家在对待scrollView无数据时的提示页都会使用一些第三方来定制,最典型的就是使用DZNEmptyDataSet。...where Self : UIViewController { // 3、的实现的方法写在这里 } 3、定义功能方法 scrollView传递进来,让我们定义的方法来暗地里做些操作 func...要明白这里的self指的是UIViewController,考虑UIView的可能,这里我就让万物对象之父NSObject来遵守,并实现对应的数据源方法和代理方法 extension NSObject...,非常地恰巧,我们定义的方法lxf_EmptyDataSet需要外界UIScrollView传递进来,在DZNEmptyDataSet的数据源方法和代理方法也有scrollView。...可以使用Cocoapods的方式来安装使用 pod 'LXFProtocolTool' 我也 iOS - Swift 面向协议编程(二) 中提及的通过协议便捷加载xib的功能也集成了进来。

1.4K50

IOS入门之StoryBoard

我们来看看三种方式的主要区别: 手写页面和逻辑代码 如果你的目的是写一些可以高度重用的控件提供给其他开发者使用,那毫无疑问最好的选择应该是使用代码来完成UIView的子类.这样进一步的修改和其他开发者在使用时...MVC:一般来说,单个的xib文件对应一个ViewController,而对于一些自定义的view,往往也会使用单个xib并从main bundle进行加载的方式来载入.IB帮助完成view的创建,布局和与...2,一般情况下, 程序都是写在Xcode默认的Main.storyboard里面,也可以自定义storyboard相应的模块。 ?...因为在 Storyboard 里 View 之间的连线算法都是 View 的右边缘出发,另外一个 View 的左边缘结束,如果调转了,就会出现很多交叉的连线,让界面看起来很乱。...并且可以通过 Segue 来进行 View 之间的数据传递,统一规范 View 之间跳转的代码,让逻辑更清晰。 所以我们在写布局的时候尽量预览下实际效果。 ?

1.7K70

iOS14开发-触摸与手势识别

触摸事件传递与响应 当触摸事件产生以后,App 里有很多的 UIViewUIViewController,到底应该谁去响应这个事件呢?...如果能,那么 UIWindow 会后往前遍历自己的子 UIView事件向下传递。...hitTest方法事件传递给其子 UIView,这样循环寻找与传递下去,直到获取最佳响应者。...这样可以让触摸事件传递凸起按钮,并让其成为最佳响应者。 事件响应 当找到最合适的响应者之后,响应者对于触摸事件,有以下 3 种操作: (1)不拦截,事件会沿着默认的响应链自动传递。...使用步骤 创建手势实例,指定回调方法,当手势开始,改变、或结束时,回调方法被调用。 手势添加到需要的 UIView 上。

2.2K20

UIViewController的生命周期及iOS程序执行顺序

UIViewController的生命周期及iOS程序执行顺序 当一个视图控制器被创建,并在屏幕上显示的时候。...代码的执行顺序 1、alloc 创建对象,分配空间 2、init (initWithNibName) 初始化对象,初始化数据 3、loadViewnib载入视图,通常这一步不需要去干涉。...除非你没有使用xib文件创建视图 4、viewDidLoad载入完成,可以进行自定义数据以及动态创建其他控件 5、viewWillAppear视图将出现在屏幕之前,马上这个视图就会被展现在屏幕上了 6、...1)- (void)viewDidLoad; 一个APP在载入时会先通过调用loadView方法或者载入IB中创建的初始界面的方法,视图载入内存中。...默认的实现是检查当前控制器的view是否在使用

1.4K110

【iOS】UIViewController生命周期

3》loadView方法运行例如以下操作: 假设你重载了这种方法,则必须创建必要的view而且一个非nil值传给UIViewController的view属性。...假设你没有重载这个函数,UIViewController会默认使用UIViewController的nibName和nibBundle属性尝试nib文件载入view。...假设没有找到nib文件,它尝试寻找一个与UIViewController类名匹配的nib文件。 假设没有可用的nib文件,那么它创建一个空的UIView作为它的view。...除非你没有使用xib文件创建视图 4、viewDidLoad 加载完毕,能够进行自己定义数据以及动态创建其它控件 5、viewWillAppear...1、viewWillDisappear 视图将被屏幕上移除之前运行 2、viewDidDisappear 视图已经被屏幕上移除,用户看不到这个视图了

74120
领券