UIAlertController: аддсубвиев

Я хочу добавить подвид к моему контроллеру предупреждений. Но почему кнопки идут сверху? Как решить проблему?

    let alert = UIAlertController(title: nil, message: nil, preferredStyle: UIAlertControllerStyle.alert)

    let somethingAction = UIAlertAction(title: "Something", style: .default, handler: {(alert: UIAlertAction!) in print("something")})

    let cancelAction = UIAlertAction(title: "Annuler", style: .cancel, handler: {(alert: UIAlertAction!) in print("cancel")})

    alert.addAction(somethingAction)
    alert.addAction(cancelAction)

    let customView = UIView()
    customView.backgroundColor = .green
    customView.translatesAutoresizingMaskIntoConstraints = false
    customView.widthAnchor.constraint(equalToConstant: 128).isActive = true
    customView.heightAnchor.constraint(equalToConstant: 128).isActive = true

    alert.view.addSubview(customView)

    customView.centerXAnchor.constraint(equalTo: alert.view.centerXAnchor).isActive = true
    customView.topAnchor.constraint(equalTo: alert.view.topAnchor).isActive = true
    customView.bottomAnchor.constraint(equalTo: alert.view.bottomAnchor, constant: -32).isActive = true
    self.present(alert, animated: true, completion:{})

введите здесь описание изображения


person Louis    schedule 24.03.2017    source источник
comment
UIAlertController не поддерживает добавление подпредставлений. Если вам нужно настраиваемое оповещение, используйте настраиваемое оповещение, а не UIAlertController.   -  person rmaddy    schedule 24.03.2017
comment
Попробуйте это stackoverflow.com/a/32790860/7250862   -  person RajeshKumar R    schedule 24.03.2017
comment
@RajeshkumarR Спасибо, но он часто использует /n. Но моя высота просмотра является динамической, поэтому для меня это не очень хорошее решение.   -  person Louis    schedule 24.03.2017
comment
Затем создайте UIView и спроектируйте как alertController.   -  person RajeshKumar R    schedule 24.03.2017


Ответы (1)


UIAlertController — довольно закрытая система. Он предназначен для стандартного оповещения системы. Вы не должны добавлять к нему подвиды.

Я бы создал собственный UIViewController, который может действовать как предупреждение. Вы можете использовать пользовательский переход UIViewController, чтобы он отображался так же, как UIAlertController.

Существует также множество проектов GitHub, предоставляющих настраиваемые стили предупреждений, которые могут вам понравиться. Например, этот: https://github.com/DominikButz/DYAlertController

person Ryan Poolos    schedule 24.03.2017
comment
Спасибо за Ваш ответ :) - person Louis; 25.03.2017
comment
Рад, что это помогло! Удачного кодирования :) - person Ryan Poolos; 26.03.2017