`
weiqingfei
  • 浏览: 315359 次
  • 性别: Icon_minigender_1
  • 来自: 黑洞
社区版块
存档分类
最新评论

iOS各个回调函数的执行顺序

    博客分类:
  • IOS
 
阅读更多

参照一位网友的blog:http://www.cnblogs.com/dsxniubility/p/4322525.html

 

一般的执行顺序没什么问题,主要是view的布局时候需要特别注意,看是在哪个回调函数里才能得到正确的布局,在UIView类里的话,是在layoutSubviews方法里,如果是这个UIVIew所对应的UIVIewController类里的话,那就是viewDidLayoutSubviews方法了。

 

但是一定要注意的是,UIVIewController.viewDidLayoutSubviews这个方法是在所管理的UIView布局完后就调用了,但是这时候UIView里的SubView的并还没有布局好!!!(苹果这是几个意思???)

 

以上只是启动阶段回调函数的执行顺序。

根据国外友人的一篇blog:http://kevindew.me/post/18579273258/where-to-progmatically-lay-out-views-in-ios-5-and

当启动完成后,如果设备进行旋转的话,会调用以下方法

[UIViewController willRotateToInterfaceOrientation:duration:]
[UIViewController viewWillLayoutSubviews]
[UIView layoutSubviews]
[UIViewController viewDidLayoutSubviews]
[UIViewController willAnimateRotationToInterfaceOrientation:duration:]
[UIViewController shouldAutorotateToInterfaceOrientation:]
[UIViewController didRotateFromInterfaceOrientation:]

当呈现一个新的UIViewController时

[UIViewController loadView]
[UIViewController viewDidLoad]
[UIViewController viewWillAppear:]
[UIViewController shouldAutorotateToInterfaceOrientation:]
[UIViewController viewWillLayoutSubviews]
[UIView layoutSubviews]
[UIViewController viewDidLayoutSubviews]
[UIViewController viewDidAppear:]

当呈现的UIViewController关闭时

[UIViewController viewWillAppear:] - Note correct bounds here
[UIViewController viewWillLayoutSubviews]
[UIView layoutSubviews]
[UIViewController viewDidLayoutSubviews]
[UIViewController viewDidAppear:]

 

分享到:
评论

相关推荐

    [iOS]Objective-C利用协议实现回调函数(类似java的回调函数)

    在标题提及的“[iOS]Objective-C利用协议实现回调函数(类似java的回调函数)”中,我们主要讨论的是Objective-C如何通过协议(Protocol)来实现类似于Java中的回调函数功能。这种机制对于异步编程、事件处理以及...

    IOS block回调代码实例Demo

    Block不仅可以作为局部变量、函数参数,还可以用于回调,这正是"IOS block回调代码实例Demo"所展示的核心概念。在这个Demo中,我们将深入探讨Block在iOS应用程序中的使用方式,特别是如何利用它们来实现回调机制。 ...

    ios自定义回调方法Demo

    在iOS开发中,自定义回调方法是实现特定功能或交互的关键技术之一。它允许我们根据应用程序的需求,在不同组件之间传递信息或执行特定操作。本文将深入探讨如何在iOS中创建和使用自定义回调方法,以及它们在实际项目...

    iOS方法执行顺序

    在iOS开发中,理解方法执行顺序是至关重要的,这关系到程序的运行逻辑和性能优化。本文将深入探讨iOS中的方法执行流程,主要基于Objective-C的运行时(Runtime)系统,因为这是iOS方法调用的核心机制。 首先,我们...

    RecallBackDemo(回调函数实现简单计时器)

    因此,回调函数可能被用来在主线程(例如Android的`runOnUiThread`或iOS的`DispatchQueue.main.async`)中安全地更新界面。这样做可以确保UI操作始终在正确的上下文中执行,避免出现线程冲突。 总结来说,...

    iOS的block回调

    总的来说,iOS的Block回调使得代码更加简洁、易读,减少了回调函数的使用,提高了代码的可维护性。熟练掌握Block回调机制对于iOS开发者来说至关重要,因为它贯穿于许多核心API和框架中。通过实践和理解Block的工作...

    Objective-c利用协议实现回调函数

    本文将深入探讨如何利用Objective-C的协议(Protocol)来实现回调函数,这在处理异步操作、事件传递等方面非常常见。我们将通过一个名为"CallBackDemo"的源码实例来进一步理解这一概念。 首先,我们需要理解...

    Java对接iOS内购,回调地址验证.zip

    主要是Java对接iOS内购,回调验证相关的方法, 真机测试的时候,一定要退出原来的账号,才能用沙盒测试账号,二次验证,请注意区分宏, 测试用沙盒验证,App Store审核的时候也使用的是沙盒购买,所以验证购买凭证的...

    ios table执行顺序

    本文将深入解析iOS表格(Table View)从创建到展示的执行顺序,以及与其相关的复用机制。 首先,让我们了解UITableView的生命周期。当一个UITableView对象被创建时,通常是在UIViewController的`viewDidLoad`方法中...

    ios-block 回调.zip

    当Block作为参数传递时,它通常用于定义一个回调函数,这样当某个操作完成时,可以调用这个Block执行相应的代码。例如,在网络请求中,我们经常会看到类似这样的API: ```objc - (void)downloadDataWithCompletion:...

    ios回调

    回调是一种程序设计模式,其中一个函数作为参数传递给另一个函数,被传递的函数在特定条件满足时被执行。在iOS中,回调常用于处理异步操作的结果,例如网络请求、用户交互等。这样可以确保在适当的时候处理这些结果...

    ios-block回调 仅仅是回调.zip

    本资料包"ios-block回调 仅仅是回调.zip"聚焦于Block在回调场景下的应用,特别是BlockReturnTest示例。 首先,我们要理解什么是Block。在Objective-C或Swift中,Block是一个能够捕获并存储其所在上下文中局部变量的...

    IOS开发入门介绍.pdf

    这些示例代码涵盖了IOS开发的各个方面,如开发环境设置、Objective-C编程、协议编程、委托模式、 timer应用、回调函数等。 IOS开发入门介绍.pdf是一份详细的IOS开发入门指导文档,旨在帮助开发者快速掌握IOS开发的...

    解决ios audio无法播放问题

    猜测ios中的audio不能再ajax回调函数中play() 下面记录一下ios中ajax回调中播放音乐的问题解决过程 解决方案一 –降低音量 在用户点击时间后将audio的音量设置为0,等success后将音量设置为1; volume可以控制audio...

    iOS多个数组按照同样顺序打乱

    多个数组按照同样顺序打乱,新增方法二

    构建 View 时可能用到的代理函数调用顺序 viewdidload

    了解并掌握视图控制器生命周期中的各个方法及其调用顺序对于编写高效稳定的iOS应用程序至关重要。通过合理利用`viewDidLoad`和`viewWillAppear`等方法,可以在合适的时机进行必要的初始化和更新操作,从而提升用户...

    iOS-访问网络

    iOS-访问网络 iOS-访问网络 iOS-访问网络

    iOS-RAC-高阶函数-带注释-Demo

    在RAC中,高阶函数通常用于组合和转换信号,帮助我们构建复杂的逻辑而不必编写过多的回调代码。 1. **map**:这是RAC中最常用的高阶函数之一。`map`函数接收一个信号,并对其发送的每个值应用一个转换函数,然后将...

    iOS两个app之间的相互跳转,并带有回调处理

    本文将深入探讨如何实现iOS应用间的相互跳转以及如何进行回调处理。 URL Scheme是一种自定义的协议,类似于HTTP或FTP,但它是专门为应用程序定制的。每个iOS应用都可以注册一个唯一的URL Scheme,使得其他应用可以...

    flutter_screenshot_callback:Flutter插件,可让您检测移动屏幕截图并在iOS和Android上执行回调函数。 :rocket:

    Flutter插件,可让您检测移动屏幕截图并在iOS和Android上执行回调函数。 :rocket: ••• ! 用法 导入包裹 要使用此插件,请按照。 使用插件 将以下导入添加到您的Dart代码中: import 'package:screenshot_...

Global site tag (gtag.js) - Google Analytics