Я сделал расширяемый вид с динамическим количеством UILabels
(создается прогамматически в соответствии с количеством результатов запроса). Однако я не могу изменить размер расширенной высоты в соответствии с количеством UILabels
, которое у меня есть в расширенном виде.Расширяемая ячейка, высота самообучения
Использование for loop
Я создаю столько ярлыков, сколько есть результатов после запроса.
Теперь я положил их в поле зрения, как это:
for (index, _) in timesBetween2Stations.enumerated() {
let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 20))
cell.ExpandableView.addSubview(label)
label.translatesAutoresizingMaskIntoConstraints = false
label.center = CGPoint(x: cell.ExpandableView.frame.width/2, y: 0)
label.textAlignment = NSTextAlignment.center
var substationTime = timesBetween2Stations[index]?.time
let substation = timesBetween2Stations[index]?.station
substationTime = substationTime!.removeTrainTimeZeros()
label.text = substation! + " " + substationTime!
cell.ExpandableView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-(10)-[label]", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["label": label, "expandable": cell.ExpandableView]))
if (previousLabel == nil){
cell.ExpandableView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-(10)-[label]", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["label": label, "expandable": cell.ExpandableView]))
}
else {
cell.ExpandableView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:[previousLabel]-(10)-[label]", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["label": label, "previousLabel": previousLabel as Any]))
}
previousLabel = label
}
вопрос - почему это не изменение размера высоты вида в соответствии с ограничениями? :)
Почему вы не используете UITableView и не помещаете один UILabel в каждую ячейку, автомат в UILabel будет изменять размер в соответствии с высотой текста uilabel. –
Какую версию iOS вы планируете использовать? Это выглядит как идеальный вариант использования для 'UIStackView'. – crizzis
Минимальная версия iOS для iOS 9.0 – swifthero