Невозможно отобразить новые строки для данных массива в UILabel - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть массив.В этом у меня есть данные, такие как

"multi": ["New York","Los Angeles", "California", "Huston"]

И этот массив, который я пытаюсь отобразить в UILabel.

 cell.dynamicLbl.text = array.joined(separator: "\n")

, даже пытался выполнить следующие действия:

 cell.dynamicLbl.text = array.joined(separator: ",")

но он показывает только первый индекс массива.Даже я добавил свойства метки, чтобы показать несколько строк.

    cell.dynamicLbl.lineBreakMode = .byWordWrapping
    cell.dynamicLbl.numberOfLines = 0

Мой общий массив, если я печатаю в консоли

▿ 4 elements
  - 0 : "New York"
  - 1 : "Los Angeles"
  - 2 : "California"
  - 3 : "Huston"

И я уже установил свою метку с ограничениями.PFA.

И принял постоянную высоты для ограничения и вычисления высоты текста и присвоения этого значения с плавающей точкой постоянной ограничения.

@IBOutlet weak var optionsLblHeightConstraint: NSLayoutConstraint!

По-прежнему отображаются первые данные массива в метке.

Есть предложения?

enter image description here

Out out

enter image description here

Ответы [ 4 ]

0 голосов
/ 24 сентября 2018

Наконец-то я нашел ответ. Это проблема с противопоказаниями.Раньше это было как "Равное" отношение.После изменения на «Grater Than or Equal» исправлена ​​проблема.

Надеюсь, это поможет кому-то в будущем.

enter image description here

0 голосов
/ 24 сентября 2018

Вместо установки Height для вашей метки в ячейке, попробуйте установить верхний, нижний, ведущий, задний якоря.

Необходимо убедиться, что для метки установлен автоматический макет, и она закреплена с помощью topAnchor и bottomAnchor внутри ячейки.Затем установите следующий код внутри ViewDidLoad

//this is to automatically manage the height of the label.
tableView.rowHeight = UITableViewAutomaticDimension
//give a approximate height for cell below
tableView.estimatedRowHeight = 300
0 голосов
/ 24 сентября 2018

Не устанавливайте ограничение высоты вашего UILabel.Просто добавьте ограничения trailing, leading, top и bottom.

Не нужно рассчитывать высоту.Установите lineNumber вашего UILabel как 0 .

Внутри viewDidLoad установите следующие свойства вашего UITableView.

tableView.estimatedRowHeight = 44.0
tableView.rowHeight = UITableViewAutomaticDimension

Пожалуйста, убедитесь, что не должно быть никаких вычислений высоты, и heightForRowAtIndexPath не должно быть записано для этой ячейки с автоматическим изменением размера.

0 голосов
/ 24 сентября 2018

Убедитесь, что для cell.label.numberOfLines установлено значение 0, а для lineBreakimgMode - .wordWrap.

А ограничения ячеек для верха и низа установлены на contentView, а функция tableView heightForRow возвращает tableview.automaticDimension

...