Изменение размера шрифта UITextField в UIAlertView
Кто-нибудь знает, как изменить размер шрифта UITextField в UIAlertView? Ниже приведен мой код...
- (void) editTitle
{
NSString *string = kLocalizedString(@"Edit Title");
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil
message:string
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"OK", nil];
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
UITextField *textField = [alert textFieldAtIndex:0];
if (!self.title) {
textField.text = nil;
}
else {
textField.text = self.title;
}
textField.clearsOnBeginEditing = NO;
textField.clearButtonMode = UITextFieldViewModeAlways;
textField.autocapitalizationType = UITextAutocapitalizationTypeWords;
textField.clearsContextBeforeDrawing = NO;
// These statements have no effect on the size of the text field's font
textField.font = [UIFont systemFontOfSize:16.0];
NSDictionary *attributes = @{
NSFontAttributeName: [UIFont systemFontOfSize:16.0]};
textField.typingAttributes = attributes;
[alert show];
}
3 ответа:
После iOS 7.x вы не можете настроить внешний вид предупреждений,
Почему?
потому что его иерархия представлений является частной.Он ясно упоминается в UIAlertView Class Reference :
Класс UIAlertView предназначен для использования как есть и не используется поддержка подклассов. Иерархия представлений для этого класса является частной и не должны быть изменены.
Поэтому, к сожалению, невозможно изменить шрифт текстового поля, цвет текста кнопок .. и т.д.
Единственным решением является использование одного из пользовательских UIAlertView.
Вы должны использовать пользовательский alertview. Просто проверьте ссылку ниже.
DTAlertView
Он имеет хорошую анимацию и текстовое поле можно добавить тоже.
Как только вы используете это, вам не нужно писать такой большой код.
Надеюсь, это поможет.
Вы можете создать пользовательский
UIAlertView
, используя один из следующих способов:
- http://code.tutsplus.com/tutorials/ios-sdk-uialertview-custom-graphics--mobile-8886
- https://github.com/eaigner/CODialog
И примените свой обычай
textField
.Для второго варианта, в CODialog.М (
addTextFieldWithPlaceholder
функция) вы можете изменить размер шрифта или изменить константуkCODialogTextFieldHeight
.field.font = [UIFont systemFontOfSize:kCODialogTextFieldHeight - 8.0];