Межбуквенный интервал в IOS 6
Я хотел бы знать, как я могу установить интервал между буквами в iOS 6? Это работает нормально для iOS 7, используя приведенный ниже код, теперь нужно сделать для iOS 6:
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:[arraySettings objectAtIndex:indexPath.row]];
float spacing = 0.2f;
[attributedString addAttribute:NSKernAttributeName
value:@(spacing)
range:NSMakeRange(0, [[arraySettings objectAtIndex:indexPath.row] length])];
cell.textLabel.attributedText = attributedString;
Изображение ошибки после сбоя вышеуказанного кода в iOS 6:
Благодарю.
2 ответа
Я должен был сделать то же самое в одном из моих проектов и использовал этот же код. Это работало нормально для меня.
NSMutableAttributedString *attributedString =
[[NSMutableAttributedString alloc] initWithString:@"hi this is my testing string"];
float spacing = 1.0f;
[attributedString addAttribute:NSKernAttributeName
value:@(spacing)
range:NSMakeRange(0, [@"hi this is my testing string" length])];
mylbl.attributedText = attributedString;
Я думаю, что у вас есть проблемы с памятью arraySettings
Ивар.
Я немного изменил код, который вы предоставили в тестовом проекте, и он, кажется, работал нормально для меня при запуске на симуляторе iOS 6.1 и 7.1.
Не могли бы вы попробовать использовать следующий код и посмотреть, что произойдет?
NSString *string = [[arraySettings objectAtIndex:indexPath.row] copy];
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string];
CGFloat spacing = 0.2f;
[attributedString addAttribute:NSKernAttributeName value:@(spacing) range:NSMakeRange(0, string.length)];
cell.textLabel.attributedText = attributedString;
Если вы все еще получаете сбой, то вам нужно будет предоставить больше информации о том, что вы делаете с объектом arraySettings.