iOS - как добавить действие в новую строку в UIAlertConroller swift - PullRequest
0 голосов
/ 30 августа 2018

Мне нужно добавить действие в новой строке, например: alertActionsWithNewLines

Я пытаюсь этот код:

let uncheckInAlert = UIAlertController(title: "Are you sure you want to uncheck-in?", message: "", preferredStyle: .alert)
    uncheckInAlert.setTitleImage(UIImage(named: "fail_Icon"))
    uncheckInAlert.addAction(UIAlertAction(title: "Yes", style: .default, handler: { (action) -> Void in
        self.userUncheckIn()
    }))
    uncheckInAlert.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))
    self.present(uncheckInAlert, animated: true, completion: nil)

Но в результате я получаю что-то вроде: alertActionsInOneLine . Если заголовок действия большой, то действие автоматически переносится на новую строку. С небольшим названием действия, действия сгруппированы в одну строку. Есть ли способы сделать это?

Ответы [ 3 ]

0 голосов
/ 30 августа 2018

Изменение этих строк с

uncheckInAlert.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))

К

uncheckInAlert.addAction(UIAlertAction(title: "Cancel", style: .default, handler: nil))

let uncheckInAlert = UIAlertController(title: "Are you sure you want to uncheck-in?", message: "", preferredStyle: .alert)

К

let uncheckInAlert = UIAlertController(title: "Are you sure you want to uncheck-in?", message: "", preferredStyle: .actionSheet)

Это покажет параметр cancel, сгруппированный с другими параметрами.

0 голосов
/ 30 августа 2018

Нет флага, который вы можете установить, чтобы изменить расположение кнопок оповещения Apple. Тем не менее, UIAlertController со стилем alert автоматически изменит расположение кнопок на вертикальное, если не удастся правильно разместить всю строку текста кнопки в горизонтальном расположении. Поэтому, если текст вашей кнопки достаточно длинный, он изменит макет.

Хотя это решение вашего вопроса, я не рекомендую добавлять произвольные пробелы или излишне длинные строки в текст кнопки, просто чтобы Apple расположила кнопки вертикально в рабочем приложении. Он неправильно использует стандартные компоненты и может легко начать ломаться, когда строки локализуются на другие языки. Чтобы естественным образом добиться желаемого поведения, я бы предложил создать собственный настраиваемый вид для вертикального отображения кнопок.

0 голосов
/ 30 августа 2018

Попробуйте изменить форму стиля .alert на .actionSheet

Как в этом коде

let uncheckInAlert = UIAlertController(title: "Are you sure you want to uncheck-in?", message: "", preferredStyle: .actionSheet)
...