ios - 从 ChildViewController 添加的 ImageView 中的特殊上边距

标签 ios swift childviewcontroller

我创建了一个 subview Controller ,如下所示。它有一个 UIImageView。我将 UIImageView 添加到 View 中,如下所示。

class SampleChildViewController : UIViewController {

    let imageView : UIImageView = {
        let imageview = UIImageView()
        imageview.translatesAutoresizingMaskIntoConstraints = false
        imageview.clipsToBounds = true
        imageview.contentMode = .scaleAspectFit
        imageview.image = UIImage(named: "cat")
        return imageview
    }()


    override func viewDidLoad() {
        super.viewDidLoad()

        view.addSubview(imageView)

        NSLayoutConstraint.activate([
            imageView.topAnchor.constraint(equalTo: view.topAnchor),
            imageView.leftAnchor.constraint(equalTo: view.leftAnchor, constant: 10),
            imageView.widthAnchor.constraint(equalToConstant: 150),
            imageView.heightAnchor.constraint(equalToConstant: 150)
            ])
    }


}

这是父 View Controller 的样子。

class ViewController: UIViewController {

    let child : SampleChildViewController = SampleChildViewController()


    override func viewDidLoad() {
        super.viewDidLoad()

        view.backgroundColor = UIColor.red

        child.view.translatesAutoresizingMaskIntoConstraints = false
        addChild(child)
        child.didMove(toParent: self)
        view.addSubview(child.view)



        NSLayoutConstraint.activate([
            child.view.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 8),
            child.view.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor, constant: 8),
            child.view.leftAnchor.constraint(equalTo: view.leftAnchor),
            child.view.rightAnchor.constraint(equalTo: view.rightAnchor),
            ])



    }


}

现在的问题是我的 imageview 有一个奇怪的上边距,如下所示。如何解决?

enter image description here

最佳答案

imageview.contentMode = .scaleAspectFit 有问题。您看到的图像边界不是真正的边界。将内容模式设置为 imageview.contentMode = .scaleAspectFill 因为它将填充整个 View 。

它应该看起来像下面的东西

let imageView : UIImageView = {
    let imageview = UIImageView()
    imageview.translatesAutoresizingMaskIntoConstraints = false
    imageview.clipsToBounds = true
    imageview.contentMode = .scaleAspectFill
    imageview.image = UIImage(named: "cat")
    return imageview
}()

关于ios - 从 ChildViewController 添加的 ImageView 中的特殊上边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52799310/

相关文章:

ios - 如何从 parentViewController 中的 childViewController 更改 UITextField 和 UISwitch 的值

ios - 如何通过快速单击 subview 内的按钮来更改父 View (Xcode)

ios - 我可以在 Swift 中使用 actor 始终在主线程上调用函数吗?

arrays - 为什么我无法将 Root View 中的数据分配到其嵌入的容器 View 上?

ios - 解析更新 PFUser 类字符串

swift - 在 ios swift 中使用数组选择取消选择 uitableview 部分中的 radio

ios - Swift:如何在 View Controller 之间切换并使用导航栏在 subview Controller 内向后移动(XLPagerTabStrip)

ios - iPad 屏幕旋转错误。有没有办法在 View 加载之前锁定旋转?

ios - xcodebuild : Command failed with exit code 65 in Ionic Capacitor Application

ios - 加密/解密 .plist 文件 ios