这儿每天共享一个 iOS 的新知识,快来重视我吧

前言

我们对 UIViewController 现已十分十分熟悉了,它有一系列的生命周期办法,比方 loadViewviewDidLoadviewWillAppearviewDidAppear 等等。

可是 Apple 在本年新版本的 Xcode 15 中添加了新的 UIViewController 生命周期回调 viewIsAppearing,并且 iOS 13 以上就能够用了,因此猜想在 iOS 13 的时候就现已有这个办法了,只不过之前一直是内部私有的,被苹果躲藏了 5 年,到了本年的 iOS 17 才公开出来。

viewIsAppearing

viewIsAppearing 办法在 viewWillAppearviewDidAppear 之间调用。

首要差异在于,它是在 view 添加到层次结构中,但还未显示在屏幕上时调用的。这个办法调用的时候视图控制器的视图现已布局好了,因此你能够在这个办法下拿到正确的 view 特点。

overridefuncviewIsAppearing(_animated:Bool){
super.viewIsAppearing(animated)
}

有什么用

1、布局子视图

因为在这个办法调用时,控制器的 view 现已设置好了 frame,所以能够做一些子视图布局的作业。

可是要注意,这个办法在整个控制器生命周期内可能会调用多次,比方 push 到下一个控制器再回来。

2、改写 UI

假如每次视图出现时需要改写 UI,运用这个办法是最好的。比方你的页面需要记住当前的翻滚方位,则能够在这个办法下设置页面翻滚,以便于在用户看到 UI 之前设置完结。

3、traitCollection

在这个办法调用时,控制器的 traitCollection 也现已准备好了,能够在这时放心运用,比方获取布局方向、日夜间模式、渲染份额等等。

这儿每天共享一个 iOS 的新知识,快来重视我吧

本文同步自微信公众号 “iOS新知”,每天按时共享一个新知识,这儿仅仅同步,想要及时学到就来重视我吧!