我试图在屏幕内居中图像。它应该适合高度,但将宽度拉伸到屏幕外以保持比例。图像正确调整大小并正常居中,但一旦我添加.edgesIgnoringSafeArea(.all)图像就会偏离中心。我不知道这是否是一个错误,但我刚刚开始使用 SwiftUI,所以可能有一个简单的答案。
.edgesIgnoringSafeArea(.all)struct ContentView: View {
var body: some View {
Image("background_rain")
.resizable()
.aspectRatio(contentMode: .fill)
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .center)
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
.edgesIgnoringSafeArea(.all)struct ContentView: View {
var body: some View {
Image("background_rain")
.resizable()
.aspectRatio(contentMode: .fill)
.edgesIgnoringSafeArea(.all)
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .center)
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
先感谢您
UIViewController我正在尝试在 SwiftUI 视图中使用自定义。我设置了一个在方法中UIViewControllerRepresentable创建的类。这将创建并显示按钮,但是,不占用任何空间。UIViewControllermakeUIViewControllerUIViewControllerUIViewControllerRepresentable
我尝试使用 aUIImagePickerController而不是我的自定义控制器,并且尺寸正确。我让控制器占用空间的唯一方法是在UIViewControllerRepresentableSwiftUI 视图中设置固定框架,但我绝对不想这样做。
注意:我确实需要使用 a,UIViewController因为我正在尝试UIMenuController在 SwiftUI 中实现 a。除了我遇到的尺寸不正确的问题之外,所有这些都可以工作。
struct ViewControllerRepresentable: UIViewControllerRepresentable {
func makeUIViewController(context: Context) -> MenuViewController {
let controller = MenuViewController()
return controller
}
func updateUIViewController(_ uiViewController: MenuViewController, context: Context) {
}
}
class MenuViewController: UIViewController {
override func viewDidLoad() {
let button = UIButton()
button.setTitle("Test button", for: .normal)
button.setTitleColor(.red, for: .normal)
self.view.addSubview(button)
button.translatesAutoresizingMaskIntoConstraints = false
button.leadingAnchor.constraint(equalTo: self.view.leadingAnchor).isActive = true …Run Code Online (Sandbox Code Playgroud)