swift - UIImageView:将多个 UIViewContentMode 属性应用于一个 UIImageView?

标签 swift uiimageview

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

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)”中的“ View ”到底是什么吗?是我读到的神秘的“ View 层次结构”吗?为什么我不能简单地初始化 UIImageView?为什么它必须绑定(bind)到我没有明确创建的称为“ View ”的东西?目前只有一个 UIViewController 和一个 UIImageView。

最佳答案

据我所知,您不能将内容模式设置为同时适应中心。但是,如果图像尺寸小于 imageView 的尺寸,center 将执行 aspect fit 的操作。如果不是,请使用 aspect fit。以下代码应该可以让您区分两者:

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 进行了相当全面的解释。希望对您有所帮助。

关于swift - UIImageView:将多个 UIViewContentMode 属性应用于一个 UIImageView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45577545/

相关文章:

ios - 使用动画影响更改 iOS 设备状态栏

iphone - Objective-C:无法将图像写入文档目录

ios - UITapGestureRecognizer 操作中的引用发送者

swift - 保持节点的 X 轴和 Z 轴与地面平行,同时旋转 Y 轴以面向相机

ios - 在运行时重用具有动态布局内容的单元格

ios - 执行没有动画的 segue?

ios - 如何使用 AspectFit 缩放模式正确检测 UIImageView 上的点击

ios - 如何使用手动UITabbar并使用它来切换其他ViewController?

ios - UITableViewCell 中的固定大小 imageView 或固定文本位置?

IOS Swift 图像加载到 UIImageView 时旋转