【问题标题】:UIImageView: applying multiple UIViewContentMode properties to one UIImageView?UIImageView:将多个 UIViewContentMode 属性应用于一个 UIImageView?
【发布时间】:2017-08-08 20:33:02
【问题描述】:

如何在保留 .scaleAspectFill 的同时将 UIViewContentMode.center 添加到此 UIImageView?

func insertImage() {
    let theImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: 300))
    theImageView.image = #imageLiteral(resourceName: "coolimage")
    theImageView.contentMode = UIViewContentMode.scaleAspectFill
    view.addSubview(theImageView)
}

此外,有人可以向我解释最后一行“view.addSubview(theImageView)”中的“视图”到底是什么吗?是我读到的神秘的“视图层次结构”吗?为什么我不能简单地初始化 UIImageView?为什么它必须绑定到我没有明确创建的称为“视图”的东西?目前只有一个 UIViewController 和一个 UIImageView。

【问题讨论】:

    标签: swift uiimageview


    【解决方案1】:

    据我所知,您不能将内容模式设置为既适合又适合中心。但是,如果图像大小小于 imageView 的大小,中心将执行适合的方面。如果不是,请使用方面拟合。以下代码应该可以让您区分两者:

    if (theImageView.bounds.size.width > UIImage(named: "coolimage")?.size.width && theImageView.bounds.size.height > UIImage(named: "coolimage")?.size.height) {
       theImageView.contentMode = .aspectFit
    } else {
       theImageView.contentMode = .center
    }
    

    至于你问题的第二部分,我会向你推荐this thread,它对 UIViewController 与 UIView 进行了相当全面的解释。希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多