Open Larrycal opened 4 years ago
声明了一个基于 UIKit 的 VisualEffectView
VisualEffectView.swift import SwiftUI import UIKit struct VisualEffectView: UIViewRepresentable { typealias UIViewType = UIView var effect:UIVisualEffect func makeUIView(context: UIViewRepresentableContext<VisualEffectView>) -> UIViewType { let view = UIView(frame: .zero) view.backgroundColor = .clear let effectView = UIVisualEffectView(effect: effect) effectView.translatesAutoresizingMaskIntoConstraints = false view.addSubview(effectView) NSLayoutConstraint.activate([ effectView.heightAnchor.constraint(equalTo: view.heightAnchor), effectView.widthAnchor.constraint(equalTo: view.widthAnchor) ]) return view } func updateUIView(_ uiView: UIViewType, context: UIViewRepresentableContext<VisualEffectView>) { } }
同时声明了一个名叫MainTableViewCell的 cell
MainTableViewCell.swift import SwiftUI struct MainTableViewCell: View { var body: some View { HStack(alignment: .center) { Text("Test") .font(Font.system(size: 20.0,weight: .bold)) .lineLimit(Int.max) .foregroundColor(.black) .multilineTextAlignment(.leading) .padding([.horizontal],0) VisualEffectView(effect: UIBlurEffect(style: .regular)).frame(width: 100, height: 40).layoutPriority(1) } .padding(0) .background(Color.purple) } }
组合 list ,并显示
MainTableView.swift struct MainTableView: View { var body: some View { List { ForEach(Range(uncheckedBounds: (lower: 0, upper: 60))) { (i) in MainTableViewCell().listRowInsets(EdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 0)) } }.edgesIgnoringSafeArea([.top,.bottom]) } }
如图,红框部分为基于 UIVisualEffectView实现的 SwiftUI 类 当滑动后,此 view 消失,通过打印,frame为{0 0, 0 0} 请问下是什么原因造成的?
我按照你的代码试了一下,并没有出现上述问题,你把软件更新到最新版看看~
@SilkSong 感谢。我再试试。
声明了一个基于 UIKit 的 VisualEffectView
同时声明了一个名叫MainTableViewCell的 cell
组合 list ,并显示
如图,红框部分为基于 UIVisualEffectView实现的 SwiftUI 类 当滑动后,此 view 消失,通过打印,frame为{0 0, 0 0} 请问下是什么原因造成的?