Как изменить размер и цвет текста текста UIAlertAction

Как отредактировать UIAlertAction размер и цвет текста? Я взял UIAlertController в связи с этим, как отредактировать размер. Этот код я smy

UIAlertController *controller = [UIAlertController alertControllerWithTitle:@"Do you wish to logout?" message:@"" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *logOut = [UIAlertAction actionWithTitle:@"Log Out" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {}];

Теперь я хочу, чтобы мой текст "Выход" с размером шрифта 22 и зеленым цветом и полужирным.

Ответ 1

Вы можете обновить цвет текста, используя

       UIAlertAction *myGoalAction = [UIAlertAction
                                    actionWithTitle:NSLocalizedString(@"My Title", @"My Title")
                                    style:UIAlertActionStyleDefault
                                    handler:^(UIAlertAction *action)
                                    {

                                    }];
       [myGoalAction setValue:[UIColor greenColor] forKey:@"titleTextColor"];

Нет эффективного способа обновления размера шрифта. Я предлагаю вам использовать стандартный размер шрифта.

Метка заголовка UIAlertAction является частной переменной и недоступна напрямую. Ярлык находится внутри иерархии частного уровня уровня 3. Отображение действия выхода с большим шрифтом имеет смысл для приложения.

Есть много доступных решений с открытым исходным кодом. Я рекомендую попробовать this

Ответ 2

Изменение цвета довольно просто.

Вы можете просто изменить tintColor базового представления, однако, из-за известной ошибки, введенной в iOS 9 (https://openradar.appspot.com/22209332), tintColor переопределяется окном приложения tintColor.

Посмотрите мой полный ответ на: Как изменить цвет оттенка UIAlertController


Вы не должны изменять шрифт UIAlertController. Однако это все еще можно сделать, см. этот ответ

Ответ 3

Используйте NSMutableAttributedString, чтобы установить размер и цвет шрифта, используйте этот код ниже,

UIAlertController *controller = [UIAlertController alertControllerWithTitle:@"Do you wish to logout?" message:@"" preferredStyle:UIAlertControllerStyleAlert];

NSMutableAttributedString *hogan = [[NSMutableAttributedString alloc] initWithString:@"Do you wish to logout?"];

[hogan addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:50.0] range:NSMakeRange(24, 11)];

[hogan addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0,35)];

[controller setValue:hogan forKey:@"attributedTitle"];

UIAlertAction *logOut = [UIAlertAction actionWithTitle:@"Log Out" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {}];

надеюсь, что это будет полезно

Ответ 4

Для Swift и перезаписи в метод расширения. На основе ответа kaushal.

import UIKit

extension UIAlertAction {

    func setTextColor(_ color: UIColor) {
        self.setValue(color, forKey: "titleTextColor")
    }
}

// Ex:
// let act = UIAlertAction(...)
// act.setTextColor(UIColor.red)

Ответ 5

Попробуйте следующее:

UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Do you wish to logout?" message:@"abcd" preferredStyle:UIAlertControllerStyleActionSheet];

NSMutableAttributedString *xyz = [[NSMutableAttributedString alloc] initWithString:@"pqrs"];

[xyz addAttribute:NSFontAttributeName
              value:[UIFont systemFontOfSize:30.0]
              range:NSMakeRange(20, 15)];
[alert setValue:xyz forKey:@"attributedTitle"];



UIAlertAction *logout = [UIAlertAction actionWithTitle:@"logout" 
                                        style:UIAlertActionStyleDefault
                                        handler:^(UIAlertAction *action){
                                                    //your code for handling this
}];
UIImage *Image = [UIImage imageNamed:@"yourImage"];
[logout setValue:accessoryImage forKey:@"image"];