iOS16 Beta中UIKit嵌入SwiftUI视图导航栏内容跳动问题求助
iOS 16测试版UIKit嵌入SwiftUI导航动画异常问题
不确定这是iOS 16测试版(当前使用Xcode 14 Beta 3、iOS开发者Beta 3)的Bug,还是自身实现有误(大概率是后者)。
在现有基于UINavigationController的UIKit应用中,尝试通过UIHostingController推送SwiftUI视图时,目标视图出现奇怪的动画Bug:内容先短暂显示,随后跳至正确位置。将NavigationBar标题设置为.inline格式或完全空白后,能观察到标题最初是以.large格式渲染,切换为.inline后,内容会上移填补标题原本占据的空间。
已制作示例应用并向苹果提交Bug报告,仍希望得到社区建议,相关信息如下:
相关代码
UIKit视图控制器代码
func showSwiftUIView() { let vc = UIHostingController(rootView: SwiftUIView()) self.navigationController?.pushViewController(vc, animated: true) }
SwiftUI视图代码
import SwiftUI import Charts struct SwiftUIView: View { var body: some View { testView() } } struct testView: View { @State private var pickerState: Bool = false var body: some View { VStack (alignment: .leading) { Text("Test").padding() Chart { BarMark(x: .value("Month", 1), y: .value("Count", 3)) BarMark(x: .value("Month", 2), y: .value("Count", 7)) BarMark(x: .value("Month", 3), y: .value("Count", 2)) BarMark(x: .value("Month", 4), y: .value("Count", 1)) } } .navigationTitle("") .navigationBarTitleDisplayMode(.inline) } } struct SwiftUIView_Previews: PreviewProvider { static var previews: some View { SwiftUIView() } }
Bug现象

(可看到"Test"标签和图表在视图加载后向上跳动)
内容的提问来源于stack exchange,提问作者Rachid
相关产品推荐
相关产品推荐

