首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIImageView:将多个UIViewContentMode属性应用于一个UIImageView?

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

Stack Overflow用户
提问于 2017-08-09 04:33:03
回答 1查看 457关注 0票数 1

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

代码语言:javascript
复制
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”到底是什么?是我读到的神秘的“视图层次结构”吗?为什么我不能简单地初始化UIImageView?为什么它必须绑定到我没有显式创建的名为"view“的东西上?到目前为止,只有一个UIViewController和一个UIImageView。

EN

回答 1

Stack Overflow用户

发布于 2017-08-09 04:55:39

据我所知,你不能同时将内容模式设置为aspect fit和center。但是,如果图像大小小于imageView的大小,中心将执行aspect fit所做的操作。如果没有,请使用aspect fit。下面的代码应该允许您区分这两者:

代码语言:javascript
复制
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有一个相当全面的解释。希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45577545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档