我的swifts代码,它使用for循环显示到imageviews。现在,代码已构建,但是什么也没有出现。我知道我必须将第二个框的前导锚约束移到.25上。但我认为第一个框为box1会出现,但再也没有出现,我也不知道为什么。
import UIKit
class ViewController: UIViewController {
var box1 = UIButton();var box2 = UIButton()
override func viewDidLoad() {
super.viewDidLoad()
[box1,box2].forEach{
view.addSubview($0)
$0.backgroundColor = .red
$0.translatesAutoresizingMaskIntoConstraints = false
$0.heightAnchor.constraint(equalTo: $0.heightAnchor, multiplier: 30).isActive = true
$0.widthAnchor.constraint(equalTo: $0.widthAnchor, multiplier: 30).isActive = true
$0.leadingAnchor.constraint(equalTo: $0.leadingAnchor ).isActive = true
$0.topAnchor.constraint(equalTo: $0.topAnchor).isActive = true
}
}
}
答案 0 :(得分:0)
您正在使用的以下代码没有任何意义。您正在尝试将leadingAnchor
和topAnchor
中的box1
和box2
添加到自己。
$0.leadingAnchor.constraint(equalTo: $0.leadingAnchor ).isActive = true
$0.topAnchor.constraint(equalTo: $0.topAnchor).isActive = true
相反,您需要将约束添加到self.view
self.view.leadingAnchor.constraint(equalTo: box1.leadingAnchor).isActive = true
box1.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true
将以上代码移出forEach
循环。
对于box2
,您需要用图像更新问题说明,以阐明box1
和box2
的布局。
答案 1 :(得分:0)
我不知道您要在视图中放置按钮的位置,因为您还没有将任何视图都指向要对齐的按钮。尝试以下代码,让我知道它是否适合您。
$0.leadingAnchor.constraint(equalTo: self.view.leadingAnchor, constant: 15).isActive = true
$0.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 15).isActive = true
$0.heightAnchor.constraint(equalToConstant: 30).isActive = true
$0.widthAnchor.constraint(equalToConstant: 30).isActive = true
请注意,您尝试使用“ 乘数”而不是“ equalToConstant ”来设置高度。是的,您可以使用乘数,但前提是您要根据父视图或任何其他视图缩放图像,但在这种情况下,您需要将其设置为常量,因为要为其提供浮点值。