图像未在UIStackView中舍入

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像未在UIStackView中舍入相关的知识,希望对你有一定的参考价值。

我试图围绕几个图像并将它们添加到堆栈视图中,由于某种原因它无法正常工作。基本上,我有一个包含所有UIImage名称的数组,并将它们分配给UIImageView。当我尝试从图像中创建一个圆圈时,它不起作用:

 var navStackView : UIStackView = {
    let stack = UIStackView()
    stack.axis = .horizontal
    stack.alignment = .center
    stack.distribution = .fillEqually
   // stack.spacing = -10
    stack.translatesAutoresizingMaskIntoConstraints = false
    return stack
}()

var images = ["1", "2", "3", "4"]

override func viewDidLoad() {
    super.viewDidLoad()

    let navController = navigationController!

    navController.navigationBar.addSubview(navStackView)
    // x, y, w, h
    navStackView.leadingAnchor.constraint(equalTo: navController.navigationBar.leadingAnchor).isActive = true
    navStackView.trailingAnchor.constraint(equalTo: navController.navigationBar.trailingAnchor).isActive = true
    navStackView.topAnchor.constraint(equalTo: navController.navigationBar.topAnchor).isActive = true
    navStackView.bottomAnchor.constraint(equalTo: navController.navigationBar.bottomAnchor).isActive = true


    for image in images {
        let imageView = UIImageView()
        imageView.image = UIImage(named: image)
        imageView.layer.cornerRadius = imageView.frame.height / 2
        imageView.clipsToBounds = true
        imageView.layer.masksToBounds = false
        imageView.contentMode = .scaleAspectFit
     //   imageView.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
        navStackView.addArrangedSubview(imageView)

        navStackView.layoutIfNeeded()
    }

    navigationItem.titleView = navStackView
}
答案

你可以试试

var once = true
override func viewDidLayoutSubviews() {
  super.viewDidLayoutSubviews()
  if once {
     navStackView.subviews.forEach { $0.layer.cornerRadius = $0.frame.height / 2 }
     once = false
  }
}

以上是关于图像未在UIStackView中舍入的主要内容,如果未能解决你的问题,请参考以下文章

在 Objective-C 中舍入双数

如何在 Java 中舍入整数除法并获得 int 结果? [复制]

如何在PHP中舍入浮点数?

为啥整数除法在许多脚本语言中舍入?

在 Java 中舍入一个双精度数

scss 在Sass中舍入小数