小编Tim*_*mmy的帖子

使用 edgeIgnoringSafeArea(.all) 将图像居中

我试图在屏幕内居中图像。它应该适合高度,但将宽度拉伸到屏幕外以保持比例。图像正确调整大小并正常居中,但一旦我添加.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)

输出:

第二张图片

先感谢您

swift swiftui

5
推荐指数
1
解决办法
101
查看次数

UIViewControllerRepresentable 未正确占用空间

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)

uikit ios swiftui uiviewcontrollerrepresentable

4
推荐指数
1
解决办法
5896
查看次数