【问题标题】:Proper way for dismiss active sheet?关闭活动工作表的正确方法?
【发布时间】:2021-04-05 14:01:32
【问题描述】:

在我的 UI 中,我尝试使用不同的按钮在应该显示的活动工作表之间切换。

.sheet(item: $activeSheet) { item in
   switch item {  
      case .sheet1:
        SheetInfoViewOne()
      case .sheet2:
        SheetInfoViewTwo()        
   }
}

显示正常。但是,我不知道关闭它的正确方法。用户可以滑开活动工作表。它消失了。但是,我想知道内存是否会被释放?是否应该有额外的代码来以正确的方式关闭这些活动工作表?

【问题讨论】:

  • 谷歌上的第一个结果:hackingwithswift.com/quick-start/swiftui/…
  • 这是用按钮关闭。我的问题是如果用户滑动视图,如何正确处理内存。
  • 你为什么担心内存?它会自己处理,您是否面临一些问题?你为什么会担心它?我没有投反对票,但我认为问题是错误的或需要编辑
  • @user6539552 您的问题字面意思是“关闭活动工作表的正确方法”,现在您声称这不是您的问题。如果这是你的问题,也许你应该问“内存释放在 SwiftUI 中是如何工作的”

标签: ios swift swiftui


【解决方案1】:

如果视图不再使用,iOS 会自动释放它的内存。 所以你不必使用任何“特殊代码”来释放内存: 忽略你的观点。

请记住,将 .opacity 设置为“0”不会释放内存,因为视图仍然存在,只是您看不到它。

【讨论】:

  • 我也想添加这个,只要你的视图在你的屏幕上没有激活或者它不能活着,这就是 SwiftUI 的工作方式,当视图被杀死时它的所有私有数据和变量也被杀死,因为它们是私有的,这就是为什么苹果说定义你的状态私有!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-07
  • 2014-12-21
  • 2022-12-20
  • 1970-01-01
  • 2011-10-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多