【发布时间】:2022-12-20 01:22:23
【问题描述】:
我目前正在使用 UIKit 制作视图,现在我想像 SwiftUI 一样预览它。 但我的画布预览看起来像一个设备而不是视图本身的大小。
我做错了什么?
import UIKit
class MyYellowButton: UIButton {
override init(frame: CGRect) {
super.init(frame: frame)
setupView()
}
required init?(coder: NSCoder) {
fatalError("not support coder")
}
// MARK: - Private
private func setupView() {
backgroundColor = .yellow
setTitleColor(.black, for: .normal)
}
}
#if canImport(SwiftUI) && DEBUG
import SwiftUI
struct UIViewPreview<View: UIView>: UIViewRepresentable {
let view: View
init(_ builder: @escaping () -> View) {
view = builder()
}
// MARK: - UIViewRepresentable
func makeUIView(context: Context) -> UIView {
return view
}
func updateUIView(_ view: UIView, context: Context) {
view.setContentHuggingPriority(.defaultHigh, for: .horizontal)
view.setContentHuggingPriority(.defaultHigh, for: .vertical)
}
}
struct MyYellowButtonPreview: PreviewProvider{
static var previews: some View {
UIViewPreview {
let button = MyYellowButton(frame: .zero)
button.setTitle("buttonTest", for: .normal)
return button
}.previewLayout(.sizeThatFits)
}
}
#endif
我希望我的预览看起来像这样
【问题讨论】:
标签: swiftui uikit swiftui-previews