У меня есть этот старый пример кода, который я обновил, но я все еще новичок ie и не могу понять, как исправить эту ошибку:
В классе, который содержит коллекцию представление:
var array = ["Just testing this out"]
Теперь в расширении UICollectionViewDelegateFlowLayout:
private func estimateFrameForText(text: String) -> CGRect {
//we make the height arbitrarily large so we don't undershoot height in calculation
let height: CGFloat = 1000
let size = CGSize(width: 398, height: height)
let options = NSStringDrawingOptions.usesFontLeading.union(.usesLineFragmentOrigin)
let attributes = [NSAttributedString.Key.font: UIFont.systemFont(ofSize: 17, weight: UIFont.Weight.light)]
return NSString(string: text).boundingRect(with: size, options: options, attributes: attributes, context: nil)
}
Также:
private func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
var height: CGFloat = 295
//we are just measuring height so we add a padding constant to give the label some room to breathe!
var padding: CGFloat = 14
//estimate each cell's height
if let text = array[indexPath.item].text {
height = estimateFrameForText(text).height + padding
}
return CGSize(width: 398, height: height) }
Здесь я получаю сообщение об ошибке:
if let text = array[indexPath.item].text
А вот UILabel из класса ячеек представления коллекции, я понятия не имею, где реализовать:
@IBOutlet weak var TextPosted: UILabel!