Как выровнять заголовок листа действий UIAlertController по вертикали посередине? - PullRequest
0 голосов
/ 13 декабря 2018

Не могу найти, как выровнять заголовок листа действий UIAlertcontroller по вертикали посередине .Ниже приведен мой код, какая-нибудь помощь?

Обновление.

С советами, приведенными ниже, я немного покопался и обнаружил, что заголовок / сообщение толкается вверх, если список длинный, иначе он остается вцентр, если список короткий.Смотрите другие скриншоты

Action Sheet

Alert

    let paragraphStyle = NSMutableParagraphStyle()
    paragraphStyle.alignment = NSTextAlignment.left
    // paragraphStyle.minimumLineHeight = // Is this the one? How to get the value required?

    let attributedString = NSAttributedString(string: "Select Sorting Option", attributes: [
        NSAttributedStringKey.paragraphStyle: paragraphStyle,
        NSAttributedStringKey.font : UIFont.systemFont(ofSize: 20),
        NSAttributedStringKey.foregroundColor : UIColor.darkGray
        ])
    let alert = UIAlertController(title: "", message: "",  preferredStyle: .actionSheet)
    alert.setValue(attributedString, forKey: "attributedTitle”)

1 Ответ

0 голосов
/ 13 декабря 2018

Попробуйте этот код, он отлично работает для меня.

        let alertView = UIAlertController(title: "Demo Alert", message: "", preferredStyle: .alert)
    alertView.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))

    let paragraphStyle = NSMutableParagraphStyle()

    paragraphStyle.alignment = .center

    let messageText = NSMutableAttributedString(
        string: "Select Sorting Option",
        attributes: [
            NSAttributedString.Key.paragraphStyle: paragraphStyle,
            NSAttributedString.Key.font : UIFont.preferredFont(forTextStyle: .body),
            NSAttributedString.Key.foregroundColor : UIColor.black
        ]
    )

    alertView.setValue(messageText, forKey: "attributedMessage")
    present(alertView, animated: true, completion: nil)
}
...