1. UIStackView多層嵌套問題
本來我的設計是想在cell裡面使用UIStackView,然後裡面再嵌套一個UIStackView,發現這樣有點問題
就是現在灰色的View這塊,本意是想使用一個垂直的UIStackView,但是示範的時候發現cell并沒有遵循我的限制
真機示範的時候會發現隻有圈着的label顯示了,垂直的UIStackView的下面那個label被壓下去,但問題是我在垂直的UIStackView也設定了内部限制了,顯然顯示的限制并非設計的那樣運作.這樣嵌套會導緻很多問題,而且還不知道怎麼解決
2. 使用View
從上面可知,
第一層的UIStackView是沒問題的,是以我把第二層的UIStackView換成view,裡面再裝一個UIStackView呢,實驗證明和上面的情況是一樣的......,是以這樣子的多層嵌套還沒有很好的解決辦法.那就不用UIStackView了,直接上一個view吧,而且我發現你裡面這兩個垂直排布的label也不能加限制,加了後又會和嵌套UIStackView的顯示情況一樣了........
3.自定義cell
然後自定義一個cell:
import UIKit
class PortInfoTableViewCell: UITableViewCell {
@IBOutlet weak var cellStack: UIStackView!
var protocalLabel: UILabel?
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
protocalLabel = cellStack.arrangedSubviews[0] as! UILabel
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
這裡參考了兩篇文章:
- Access variable in different class - Swift
如何跨類獲得protocalLabel
- stored property “text” without initial value prevents synthesized initializers
一個成員變量初始化錯誤,不要忘記加上'?'
var protocalLabel: UILabel?