如何将 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/