自动布局未正确设置图像视图框架

用户1951992

只需将此图像放置在图像视图中并设置为宽高比。

在此处输入图片说明

override func viewDidLoad() {
        super.viewDidLoad()
        let image = UIImage(named: "1-landscape")
        let imageView = UIImageView(image: image)
        imageView.translatesAutoresizingMaskIntoConstraints = false
        imageView.backgroundColor = UIColor.blackColor()
        imageView.contentMode = .ScaleAspectFit
        view.addSubview(imageView)
        var collector = [NSLayoutConstraint]()
        collector.appendContentsOf(NSLayoutConstraint.constraintsWithVisualFormat("H:|-0-[imageView]-0-|", options: [], metrics: nil, views: ["imageView": imageView]))
        collector.append(NSLayoutConstraint(item: imageView, attribute: .CenterY, relatedBy: .Equal, toItem: view, attribute: .CenterY, multiplier: 1, constant: 0))
        view.addConstraints(collector)
    }

在运行时,视图的高度比图像的高度大50%。为什么 ???

在此处输入图片说明

如果我们使用传统的观点发表意见,那就没有问题。我会忘记自动布局之类的步骤吗?

    override func viewDidLoad() {
        super.viewDidLoad()
        let image = UIImage(named: "1-landscape.png")!
        let scaleFactor = image.size.height / image.size.width
        let width = view.frame.size.width
        let height = width * scaleFactor
        let size = CGSize(width: width, height: height)
        let imageView = UIImageView(image: image)
//        imageView.translatesAutoresizingMaskIntoConstraints = false
        imageView.backgroundColor = UIColor.blackColor()
        imageView.contentMode = .ScaleAspectFit
        imageView.frame.size = size
        imageView.center = view.center
        view.addSubview(imageView)
//        var collector = [NSLayoutConstraint]()
//        collector.appendContentsOf(NSLayoutConstraint.constraintsWithVisualFormat("H:|-0-[imageView]-0-|", options: [], metrics: nil, views: ["imageView": imageView]))
//        collector.append(NSLayoutConstraint(item: imageView, attribute: .CenterY, relatedBy: .Equal, toItem: view, attribute: .CenterY, multiplier: 1, constant: 0))
//        view.addConstraints(collector)
    }
用户1951992

可以通过锁定纵横比的约束来强制高度,从而达到目的。

override func viewDidLoad() {
        super.viewDidLoad()
        let image = UIImage(named: "1-landscape.png")!
        let imageView = UIImageView(image: image)
        imageView.translatesAutoresizingMaskIntoConstraints = false
        imageView.backgroundColor = UIColor.blackColor()
        imageView.contentMode = .ScaleAspectFit
        view.addSubview(imageView)
        var collector = [NSLayoutConstraint]()
        collector.appendContentsOf(NSLayoutConstraint.constraintsWithVisualFormat("H:|-0-[imageView]-0-|", options: [], metrics: nil, views: ["imageView": imageView]))
        collector.append(NSLayoutConstraint(item: imageView, attribute: .Height, relatedBy: .Equal, toItem: imageView, attribute: .Width, multiplier: image.size.height / image.size.width, constant: 0))
        collector.append(NSLayoutConstraint(item: imageView, attribute: .CenterY, relatedBy: .Equal, toItem: view, attribute: .CenterY, multiplier: 1, constant: 0))
        view.addConstraints(collector)
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

自动布局后获取视图框架

来自分类Dev

自动布局-视图控制器框架不正确

来自分类Dev

UITableViewCell的自动布局子视图的框架未更新

来自分类Dev

UITableViewCell的自动布局子视图的框架未更新

来自分类Dev

Xcode 8情节提要自动更改视图框架

来自分类Dev

创建UICollectionViewCell时子视图框架不正确

来自分类Dev

使用自动布局将子视图添加到UITableView不会设置其框架

来自分类Dev

如果未显示图像,如何在顶部显示的标签上设置自动布局?

来自分类Dev

如何更改UITextField左视图框架

来自分类Dev

如何控制UIViewController的视图框架

来自分类Dev

如何更改UITextField左视图框架

来自分类Dev

如何控制UIViewController的视图框架

来自分类Dev

画布上的树视图框架

来自分类Dev

自动布局:UIView中的UIView框架不正确

来自分类Dev

约束布局 - 如何使图像视图(框架)在整个屏幕上移动

来自分类Dev

自动布局与框架尺寸

来自分类Dev

在表格视图的单元格内自动布局图像。布局正确,但只有向下滚动和向上滚动一次?

来自分类Dev

根据其超级视图框架更改子视图

来自分类Dev

更改视图框架iOS 8时UIViewController视图消失

来自分类Dev

根据其超级视图框架更改子视图

来自分类Dev

Imageview 图像未正确设置或过滤

来自分类Dev

相对于cellForRowAtIndexPath方法,在layoutSubviews方法中设置单元格子视图框架有什么好处?

来自分类Dev

使用自动布局目标 C 将图像居中到视图

来自分类Dev

如何使用固定宽度和自动布局正确缩放图像?

来自分类Dev

如何使用固定宽度和自动布局正确缩放图像?

来自分类Dev

无法在相对布局中正确对齐图像视图

来自分类Dev

如何通过自动布局设置集合视图的像元大小

来自分类Dev

自动布局动画约束不会为子视图设置动画

来自分类Dev

自动布局动画约束不会为子视图设置动画

Related 相关文章

  1. 1

    自动布局后获取视图框架

  2. 2

    自动布局-视图控制器框架不正确

  3. 3

    UITableViewCell的自动布局子视图的框架未更新

  4. 4

    UITableViewCell的自动布局子视图的框架未更新

  5. 5

    Xcode 8情节提要自动更改视图框架

  6. 6

    创建UICollectionViewCell时子视图框架不正确

  7. 7

    使用自动布局将子视图添加到UITableView不会设置其框架

  8. 8

    如果未显示图像,如何在顶部显示的标签上设置自动布局?

  9. 9

    如何更改UITextField左视图框架

  10. 10

    如何控制UIViewController的视图框架

  11. 11

    如何更改UITextField左视图框架

  12. 12

    如何控制UIViewController的视图框架

  13. 13

    画布上的树视图框架

  14. 14

    自动布局:UIView中的UIView框架不正确

  15. 15

    约束布局 - 如何使图像视图(框架)在整个屏幕上移动

  16. 16

    自动布局与框架尺寸

  17. 17

    在表格视图的单元格内自动布局图像。布局正确,但只有向下滚动和向上滚动一次?

  18. 18

    根据其超级视图框架更改子视图

  19. 19

    更改视图框架iOS 8时UIViewController视图消失

  20. 20

    根据其超级视图框架更改子视图

  21. 21

    Imageview 图像未正确设置或过滤

  22. 22

    相对于cellForRowAtIndexPath方法,在layoutSubviews方法中设置单元格子视图框架有什么好处?

  23. 23

    使用自动布局目标 C 将图像居中到视图

  24. 24

    如何使用固定宽度和自动布局正确缩放图像?

  25. 25

    如何使用固定宽度和自动布局正确缩放图像?

  26. 26

    无法在相对布局中正确对齐图像视图

  27. 27

    如何通过自动布局设置集合视图的像元大小

  28. 28

    自动布局动画约束不会为子视图设置动画

  29. 29

    自动布局动画约束不会为子视图设置动画

热门标签

归档