您好我正在使用此代码尝试调整文本大小虽然我看不到要调整大小的标签。此外,未调用自定义类中的init方法。这是我的代码:
class Cell: UICollectionViewCell {
@IBOutlet weak var label: UILabel!
override init(frame: CGRect) {
super.init(frame: frame)
print("init—>Not being called???\n")
self.label.adjustsFontSizeToFitWidth = true
self.cell.label.sizeToFit()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
}
如何让init调用呢?我也试过调整方法
中的文字func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath
虽然标签的文字大小没有变化, 这是细胞长片的样子。 在此先感谢您的帮助。
如果我放置 -
adjustsFontSizeToFitWidth
或
sizeToFit
into - >
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.label.adjustsFontSizeToFitWidth = true // causes error
self.label.sizeToFit()
}
答案 0 :(得分:4)
将您的代码或断点放在init?(coder aDecoder: NSCoder)
中。如果您在故事板中添加了CollectionView,那么应该调用它。
<强>更新强> 处理您的IBOutlets(在您的单元子类中)因为在init函数中它们可能尚未生效,我认为这是您的情况:
override func layoutSubviews()
{
super.layoutSubviews()
self.label.adjustsFontSizeToFitWidth = true
self.label.minimumScaleFactor = 0.8 //set the scale factor or minimumFontSize so that it can then start adjusting the font size.
Self.label.numberOfLines = 1
}