Почему текст вырезается снизу в UITextField? - PullRequest
7 голосов
/ 07 сентября 2011

Я использую пользовательский шрифт в своих текстовых полях и метках во всем приложении. Мое имя шрифта "digital-7.ttf". теперь проблема в том, что текст в моих ярлыках хорош, но в UITextFields он обрезает текст снизу. когда текстовое поле редактируется, тогда текст хорош, но когда редактирование завершено, текст снова обрезается. как это enter image description here

таким образом я устанавливаю стиль шрифта [txtFld setFont:[UIFont fontWithName:@"digital-7" size:25.0]];

и шрифт был добавлен в info.plist

Пожалуйста, помогите мне

Ответы [ 5 ]

5 голосов
/ 07 ноября 2011

У меня просто была похожая проблема с пользовательским шрифтом в UITextField, но в моем случае это обрезало мои умляуты сверху.

я открыл шрифт с помощью FontForge и настроил Смещение подъема HHead в Элементе -> OS / 2 -> Метрики к тому же значению, что и Смещение подъема Win

в вашем случае это, вероятно, HHHead Descent Offset . попробуйте изменить это значение

2 голосов
/ 08 октября 2012

Редактирование файла шрифта кажется немного сложным.

Вы попробовали предложение Малкольма?Я использую пользовательский шрифт и пользовательский подкласс, который принимает UIEdgeInset

InsetTextField.h

#import <UIKit/UIKit.h>

@interface InsetTextField : UITextField

@property (assign, nonatomic) UIEdgeInsets insets;

@end

InsetTextField.m

#import "InsetTextField.h"

@implementation InsetTextField

- (CGRect) textRectForBounds:(CGRect)bounds
{
    return UIEdgeInsetsInsetRect([super textRectForBounds:bounds], self.insets);
}

- (CGRect)editingRectForBounds:(CGRect)bounds
{
    return UIEdgeInsetsInsetRect([super editingRectForBounds:bounds], self.insets);
}

@end

If Digital-7 по-прежнему плохо себя ведет, я думаю, у вас нет другого выхода, кроме как изменить файл шрифта.: - /

2 голосов
/ 04 августа 2012

Я столкнулся с той же проблемой с тем же шрифтом Digital-7 (хотя и курсивом).Чтобы развить ответ JeanLuc, единственный разумный способ сделать это - изменить метрики в редакторе шрифтов.Я также использовал FontForge, но шаги, которые я делал, были несколько иными.Я открыл шрифт, пошел в Element> Font Info ...> OS / 2> Metrics и изменил значение HHead Descent (представляет межстрочный интервал в Mac) на отрицательное значение Win Descent (межстрочный интервал в Windows)См. Ниже:

image

Также убедитесь, что значения Win Ascent и HHead Ascent совпадают.Вы также можете изменить имя измененного шрифта.После внесения изменений нажмите кнопку «ОК», затем «Файл», «Создать шрифты», выберите формат ttf и сохраните.

0 голосов
/ 26 июня 2012

эта проблема в Xcode 3.2.5.В более ранних версиях один и тот же код работает хорошо.:)

0 голосов
/ 07 сентября 2011

Вам следует увеличить высоту фрейма текстового поля, чтобы решить вашу проблему, или уменьшить размер шрифта текста

...