当前位置: 首页 > wzjs >正文

个人外贸公司网站百度电话销售

个人外贸公司网站,百度电话销售,三河网站建设公司,王野天津音乐广播电台图片目录一、应用生命周期(App Lifecycle)UIKit (AppDelegate)SwiftUI (使用 ScenePhase)二、页面生命周期(ViewController Lifecycle)三、视图生命周期(UIView Lifecycle)四、SwiftUI 视图生命周期五、关键对比…

目录

      • 一、应用生命周期(App Lifecycle)
        • UIKit (AppDelegate)
        • SwiftUI (使用 ScenePhase)
      • 二、页面生命周期(ViewController Lifecycle)
      • 三、视图生命周期(UIView Lifecycle)
      • 四、SwiftUI 视图生命周期
      • 五、关键对比总结

在 Swift 开发中,应用、页面(视图控制器)和视图的生命周期是核心概念。以下是 iOS 开发中(UIKit 和 SwiftUI)的生命周期详解:


一、应用生命周期(App Lifecycle)

通过 AppDelegate 或 SwiftUI 的 App 协议管理应用级事件:

UIKit (AppDelegate)
class AppDelegate: UIResponder, UIApplicationDelegate {// 应用启动完成func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {print("App Launched")return true}// 应用进入前台func applicationDidBecomeActive(_ application: UIApplication) {print("App Active")}// 应用进入后台func applicationDidEnterBackground(_ application: UIApplication) {print("App Background")}// 应用即将终止func applicationWillTerminate(_ application: UIApplication) {print("App Terminated")}
}
SwiftUI (使用 ScenePhase)
@main
struct MyApp: App {@Environment(\.scenePhase) var scenePhasevar body: some Scene {WindowGroup {ContentView()}.onChange(of: scenePhase) { newPhase inswitch newPhase {case .active: print("App Active")case .inactive: print("App Inactive")case .background: print("App Background")@unknown default: break}}}
}

二、页面生命周期(ViewController Lifecycle)

UIKit 的UIViewController生命周期(每个方法都需调用 super):

方法调用时机
init(coder:)/ init(nibName:bundle:)控制器初始化
loadView()创建视图层次结构(不要手动调用)
viewDidLoad()视图加载完成(只调用一次)
viewWillAppear(_:)视图即将显示(每次进入页面时调用)
viewWillLayoutSubviews()视图即将布局子视图
viewDidLayoutSubviews()视图已完成子视图布局
viewDidAppear(_:)视图已显示
viewWillDisappear(_:)视图即将消失
viewDidDisappear(_:)视图已消失
deinit控制器销毁

示例代码:

class ViewController: UIViewController {override func viewDidLoad() {super.viewDidLoad()print("View Loaded")}override func viewWillAppear(_ animated: Bool) {super.viewWillAppear(animated)print("View Will Appear")}override func viewDidDisappear(_ animated: Bool) {super.viewDidDisappear(animated)print("View Disappeared")}deinit {print("ViewController Deallocated")}
}

三、视图生命周期(UIView Lifecycle)

UIKit 的UIView关键方法

方法调用时机
init(frame:) / init(coder:)视图初始化
didAddSubview(_:)子视图被添加
willRemoveSubview(_:)子视图将被移除
willMove(toSuperview:)即将添加到父视图
didMoveToSuperview()已添加到父视图
layoutSubviews()布局子视图(布局变更时调用)
draw(_:)需要重绘内容(避免手动调用)
removeFromSuperview()从父视图移除
deinit视图销毁

示例代码:

class CustomView: UIView {override func layoutSubviews() {super.layoutSubviews()print("Layout Subviews (e.g., frame changed)")}deinit {print("View Deallocated")}
}

四、SwiftUI 视图生命周期

SwiftUI 使用声明式语法,通过修饰符响应事件:

修饰符作用
.onAppear { }视图出现时调用(类似 viewDidAppear
.onDisappear { }视图消失时调用(类似 viewDidDisappear
.task { }异步任务启动,视图消失时自动取消
.onChange(of: value) { }状态变化时响应

示例代码:

struct ContentView: View {@State private var text = "Hello"var body: some View {Text(text).onAppear {print("SwiftUI View Appeared")// 初始化数据}.onDisappear {print("SwiftUI View Disappeared")}.task {// 异步加载数据await loadData()}.onChange(of: text) { newValue inprint("Text changed to \(newValue)")}}
}

五、关键对比总结

概念UIKitSwiftUI
应用启动application(_:didFinishLaunching...)App协议 + onChange(of: scenePhase)
页面显示/隐藏viewWillAppear
/viewDidAppear
.onAppear
/.onDisappear
布局更新layoutSubviews()自动响应状态变化
异步任务手动管理(需在 viewDidDisappear取消).task自动取消
销毁deinit结构体自动释放

📌 最佳实践

  • UIKit:在 viewDidLoad 中初始化数据,在 viewWillAppear 中刷新 UI。
  • SwiftUI:用 .onAppear 替代 viewDidLoad + viewWillAppear,用 .task 处理异步。
  • 避免在 layoutSubviews() 中做耗时操作(可能频繁调用)。

掌握这些生命周期可避免内存泄漏、优化性能并确保正确的数据加载时机。

http://www.dtcms.com/wzjs/415829.html

相关文章:

  • 羊了个羊开发公司广告优化师工资一般多少
  • 廊坊哪里做网站海外网站推广的公司
  • html5动态网站开发教程太原百度快速排名提升
  • drupal网站建设优化大师是什么
  • 男女做性哪个的小视频网站上海营销公司
  • 日照做网站公司网络热词2021流行语
  • 网络推广网站排名网站推广是什么意思
  • 电子商务商城网站建设搜索引擎排名优化技术
  • 金寨县住房和城乡建设部网站郑州网站推广优化公司
  • 萝岗做网站沈阳关键词优化费用
  • 成都装修公司加盟seo网站推广的主要目的包括
  • 做视频网站的上市公司北京seo优化哪家好
  • 网站建设与管理的实训报告宁德市安全教育平台
  • wordpress 关闭缩略图杭州网站seo推广
  • 天津网站开发培训开网站流程
  • 芜湖哪些公司做公司网站网络营销推广的方法
  • 网站地图的好处营销策划的概念
  • 济南 外贸网站建设南宁seo优势
  • 怎样做音视频宣传网站软文推广发稿
  • 做网站的公司怎么赚钱企业网站是什么
  • 重庆豆花制作百家号关键词seo优化
  • 佛山微信网站建设哪家好广州最新政策
  • 网站安全证书过期怎么办爱站官网
  • 网站建设优化过程中的优化策略免费seo网站推广
  • wordpress国外网站最近一周新闻大事件
  • 51制作视频mv网站seo引擎优化公司
  • 做网站排名要多少钱百度推广手机客户端
  • 深圳网站建设公司 概况自己如何做网站
  • 重庆大型网站建设什么是网站外链
  • 百度互联网营销seo搜索引擎优化ppt