我在填充自定义UICollectionViewCell时遇到一个非常奇怪的问题。这是我的UICollectionViewCell子类:
class AdvancedPortraitCell: UICollectionViewCell {
var button = UIButton()
private let theme: CalculatorThemes = CalculatorThemes.sharedStore()
override init(frame: CGRect) {
super.init(frame: frame)
button.translatesAutoresizingMaskIntoConstraints = false
button.titleLabel?.textColor = UIColor.white
addSubview(button)
button.leadingAnchor.constraint(equalTo: leadingAnchor).isActive = true
button.trailingAnchor.constraint(equalTo: trailingAnchor).isActive = true
button.topAnchor.constraint(equalTo: topAnchor).isActive = true
button.bottomAnchor.constraint(equalTo: bottomAnchor).isActive = true
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func populateCell(with data: MyUIButtonToggle) -> Void {
button.setTitle(data.titleLabel?.text, for: .normal)
button.setAttributedTitle(data.titleLabel?.attributedText, for: .normal)
button.titleLabel?.font = UIFont.systemFont(ofSize: 40)
}
}
我的问题是titleLabel的字体没有更新。我在上面设置了一个断点
button.titleLabel?.font = UIFont.systemFont(ofSize: 40)
并在调试器中检查分配前后的button.titleLabel?.font及其相同的对象(即:相同的地址!)。
为什么会这样?
通常,UICollectionView可以正常工作。我只是没有让按钮以正确的字体大小显示。