Как изменить размер шрифта и цвет UIAlertAction в UIAlertController
https://www.safaribooksonline.com/library/view/ios-8-swift/9781491908969/images/ispc_0113.png
На изображении выше, как изменить размер шрифта и цвет "Готово", "Некоторые другие действия"? а как поменять размер шрифта и цвет "заголовка" и "сообщения"?
Спасибо.
4 ответа
Это из другого поста переполнения стека, но, кажется, работает нормально. Пост найден здесь.
UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"Dont care what goes here, since we're about to change below" message:@"" preferredStyle:UIAlertControllerStyleActionSheet];
NSMutableAttributedString *hogan = [[NSMutableAttributedString alloc] initWithString:@"Presenting the great... Hulk Hogan!"];
[hogan addAttribute:NSFontAttributeName
value:[UIFont systemFontOfSize:50.0]
range:NSMakeRange(24, 11)];
[alertVC setValue:hogan forKey:@"attributedTitle"];
UIAlertAction *button = [UIAlertAction actionWithTitle:@"Label text"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action){
//add code to make something happen once tapped
}];
UIImage *accessoryImage = [UIImage imageNamed:@"someImage"];
[button setValue:accessoryImage forKey:@"image"];
Чтобы изменить цвет текста с помощью следующего, добавьте его перед установкой строки [alertVC setValue:hogan forKey:@"attributetedTitle"];
[hogan addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0,35)];
Изменить цвет действия в UIAlertController
SEL selector = NSSelectorFromString(@"_alertController");
if ([actionSheet respondsToSelector:selector])
{
UIAlertController *alertController = [actionSheet valueForKey:@"_alertController"];
if ([alertController isKindOfClass:[UIAlertController class]])
{
NSArray *arr = alertController.actions;
for (int i = 0; i <arr.count; i ++) {
UIAlertAction *alertAction = [arr objectAtIndex:i];
if ([alertAction.title isEqualToString:@"Logout"]) {
UIColor *color = [UIColor redColor];
[alertAction setValue:color forKey:@"titleTextColor"];
}
}
}
Просто сделай так
UIAlertAction * action = [UIAlertAction actionWithTitle:@"ACTION TITLE" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
// TODO : ACTION
}];
[action setValue:[UIColor redColor] forKey:@"titleTextColor"];
[alertController action];
Я не смог изменить шрифт, но вы можете изменить цвет шрифта. Из примера 'hogan', изменив цвет шрифта в UIAlertAction:
[button setValue:[UIColor greenColor] forKey:@"titleTextColor"];