Отображение списка с помощью UIAlertController занимает слишком много времени - PullRequest
0 голосов
/ 11 октября 2019

У меня есть список стран, которые я хочу показать, используя UIAlertController. Это действительно появляется, но это занимает слишком много времени, так как существует более 150 стран.

Так как я могу ускорить этот процесс, используя только UIAlertController.

Вот мой код:

let alert = UIAlertController(title: "", message: "Select country", preferredStyle: UIAlertController.Style.alert)
let cancel1 = UIAlertAction.init(title: "Cancel", style: .destructive, handler: nil)
alert.addAction(cancel1)

for dict in self.aCountry{
  let tempDict:[String:Any] = dict as! [String:Any]
  let action = UIAlertAction.init(title: tempDict["country_name"] as? String, style: .default) { (completed) in
      self.tfCountry.text = tempDict["country_name"] as? String
  }
  alert.addAction(action)
}

let cancel2 = UIAlertAction.init(title: "Cancel", style: .destructive, handler: nil)
alert.addAction(cancel2)
self.present(alert, animated: true, completion: nil)

Ps - aCountry - массив странимена

Ответы [ 2 ]

0 голосов
/ 11 октября 2019

Как говорит Мэтт, вы должны использовать пользовательский представленный UIViewController или представление swiftUI.

Ознакомьтесь с этой статьей о том, как этого добиться: https://www.linkedin.com/pulse/code-animated-popup-swiftui-view-presented-swift-5-11-ean/ Не стесняйтесь отвечать здесь, если вам нужна помощь ~

0 голосов
/ 11 октября 2019

Так как я могу ускорить этот процесс, используя только UIAlertController.

Вы не можете. Вместо этого используйте пользовательский UIViewController. UIAlertController не предназначен для такого рода вещей. Пользовательский UIViewController позволит вам использовать намного лучший, более быстрый интерфейс. Представление выбора, как предлагается в комментариях, было бы хорошим интерфейсом. Если цель состоит в том, чтобы позволить пользователю ввести страну в текстовом поле или аналогичном, еще лучший подход заключается в использовании представления выбора в качестве «клавиатуры», которая появляется, когда пользователь нажимает на текстовое поле.

...