2016-06-10 3 views
10

Как отредактировать размер и цвет текста UIAlertAction? Я принял UIAlertController в соответствии с ним, как отредактировать размер. Это я SMy кодКак изменить размер шрифта и цвет текста UIAlertAction

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

Теперь я хочу, чтобы мой «Log Out» текст с размером 22 шрифта и зеленого цвета и в полужирный.

+1

Вы должны установить tintColor Смотрите мой ответ здесь: http://stackoverflow.com/a/37737212/1781087 – guidev

+1

Как tintColor изменить размер шрифта ?? – naomi

+0

[controller.view setTintColor: [UIColor yellowColor]]; для изменения цвета оттенка. –

ответ

1

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

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

Смотрите мой полный ответ на: How to change tint color of UIAlertController


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

+0

Что относительно размера шрифта ?? – naomi

0

Используйте 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) {}]; 

надеюсь, что его полезно

+0

Вопрос заключается в обновлении размера и цвета шрифта UIAlertAction. – kaushal

-1

Попробуйте это:

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"]; 
+0

Он не работает, он разбивает мое приложение. –

+0

Какая ошибка возникла? @vanderVyver –

+3

@LianvanderVyver это приведет к сбою вашего приложения, если изображение, вероятно, слишком велико. Я исправил это, масштабируя размер изображения, прежде чем устанавливать его в ключевое «изображение». –

23

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

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

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

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

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

Есть много решения с открытым исходным кодом available.I будет рекомендовать попробовать this

+1

Требование приложения моего клиента отображать шрифт LogOut с размером 17 и весом полужирным. – naomi

+0

Метка заголовка UIAlertAction является частной переменной и недоступна напрямую.Ярлык находится внутри иерархии частного уровня уровня 3. Поэтому обновление с использованием взломанного способа даст ошибку пользователю (пользовательский интерфейс не будет обновляться случайным образом, что будет трудно исправить позже). Отображение действия выхода с большим шрифтом имеет смысл для приложения. Существует много доступных решений с открытым исходным кодом. Я упоминаю один в своем ответе. – kaushal

+0

Я предлагаю пойти с этим решением, это категория над контроллером UIAlertView. и имеют хороший рейтинг в разном периоде времени. – kaushal

0

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

import UIKit 

extension UIAlertAction { 

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

// Ex: 
// let act = UIAlertAction(...) 
// act.setTextColor(UIColor.red) 
Смежные вопросы