Я использую следующий код для создания NSAttributedString
для UILabel
в прошивке 8.Установки Вертикального выравнивания укороченных хвостов для NSAttributedString с NSTextAttachment
// a long long Chinese title
NSString *title = @"这是一个很长很长很长很长很长很长的中文标题";
// setup icon attachment
NSTextAttachment *iconAttachment = [[NSTextAttachment alloc] init];
iconAttachment.image = [UIImage imageNamed:imageName];
iconAttachment.bounds = bounds;
NSAttributedString *ycardImageString = [NSAttributedString attributedStringWithAttachment:iconAttachment];
// setup attributed text
NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc] initWithString:title];
if (shouldShowYcard) {
[attributedText insertAttributedString:ycardImageString atIndex:0];
[attributedText insertAttributedString:[[NSAttributedString alloc] initWithString:@" "] atIndex:1];
[attributedText addAttribute:NSBaselineOffsetAttributeName value:@(offset) range:NSMakeRange(0, 1)];
}
NSRange titleRange = NSMakeRange(shouldShowYcard ? 2 : 0, title.length);
[attributedText addAttribute:NSFontAttributeName value:font range:titleRange];
[attributedText addAttribute:NSForegroundColorAttributeName value:color range:titleRange];
Однако, кажется, что NSTextAttachment
будет влиять на вертикальное положение усеченного хвосты, как и следующие фотографии.
Есть ли способ, чтобы установить вертикальную aignment для укороченных хвостов?
Моя цель состоит в том, чтобы иметь нижние выровняющие хвосты на китайском языке.
Вы загрузили свой снимок экрана, который показывает текст на английском языке? –
@ ХиманшуМорадия Я просто загружаю снимок экрана на английском языке. Но кажется, что это только одна ошибка в Китае ... –
на вашем экране снял свои показанные точки. из-за большой длины текста и вам нужен тот же результат с вертикальным выравниванием? –