我試圖創建一個堆棧視圖與視圖的嵌套堆棧視圖來創建一個網格。網格中的每個單元都應該有一個標籤。我的問題是,標籤只顯示在第一個視圖中this screenshot:UILabel並不總是顯示在其超級視圖
我的主要堆棧視圖的代碼很簡單:
for _ in 1...5 {
let view = WeekView()
addArrangedSubview(view)
}
這是一個嵌套堆棧視圖的代碼。
// Function called in init(frame:)
func configureView() {
spacing = 8
for _ in 1...7 {
let view = UIView()
let label = UILabel()
view.addSubview(label)
addArrangedSubview(view)
label.text = "hi"
label.textAlignment = .center
view.widthAnchor.constraint(equalToConstant: 40).isActive = true
view.translatesAutoresizingMaskIntoConstraints = false
label.heightAnchor.constraint(equalTo: view.heightAnchor).isActive = true
label.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
label.translatesAutoresizingMaskIntoConstraints = false
}
}
任何建議將大大appriciated。
您沒有設置標籤的位置,只有它的寬度和高度。 – Sulthan
感謝您的建議,但我認爲如果您移動視圖,其所有子視圖也隨之移動,是不是真的?但我試圖調用'label.frame.origin = view.frame.origin',但它沒有幫助。 – bohdankoshyrets
由於未使用自動識別掩碼,因此無法使用「框架」設置位置。您必須爲每個標籤的X和Y位置添加約束條件。否則,這個位置將是隨機的。 – Sulthan