Мне интересно, есть ли способ сделать половину нового символа линии (\n
) в NSString
в объективе C, т. Е. Чтобы он пропускал только половину пробела? Или в любом случае для этого в NSString
?Есть ли способ сделать половину новой строки?
ответ
Как и Wain, установка NSParagraphStyle на NSAttributedString может быть тем, что вы ищете. UILabel поддерживает NSAttributedStrings в iOS 6, но перед этим вам придется использовать сторонний компонент. TTTAttributedLabel очень хорошо и хорошо документировано.
NSMutableAttributedString* attrStr = [NSMutableAttributedString attributedStringWithString:@"Hello World!"];
NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
[style setLineSpacing:24]; //Just a random value, you'll have to play with it till you are hhappy
[attrStr addAttribute:NSParagraphStyleAttributeName
value:style
range:NSMakeRange(0, [myString length])];
label.attributedText = attrStr;
если вы в конечном итоге с помощью TTTAttributedLabel
вы бы использовать label.text = attrStr;
или один из вспомогательных методов (Взято из TTTAttributedLabel
Документах
[label setText:text afterInheritingLabelAttributesAndConfiguringWithBlock:^ NSMutableAttributedString *(NSMutableAttributedString *mutableAttributedString) {
NSRange boldRange = [[mutableAttributedString string] rangeOfString:@"ipsum dolar" options:NSCaseInsensitiveSearch];
NSRange strikeRange = [[mutableAttributedString string] rangeOfString:@"sit amet" options:NSCaseInsensitiveSearch];
// Core Text APIs use C functions without a direct bridge to UIFont. See Apple's "Core Text Programming Guide" to learn how to configure string attributes.
UIFont *boldSystemFont = [UIFont boldSystemFontOfSize:14];
CTFontRef font = CTFontCreateWithName((__bridge CFStringRef)boldSystemFont.fontName, boldSystemFont.pointSize, NULL);
if (font) {
[mutableAttributedString addAttribute:(NSString *)kCTFontAttributeName value:(id)font range:boldRange];
[mutableAttributedString addAttribute:kTTTStrikeOutAttributeName value:[NSNumber numberWithBool:YES] range:strikeRange];
CFRelease(font);
}
return mutableAttributedString;
}];
Кроме того, TTTAttributedLabel
имеет свойство lineHeightMultiple
(между 0,0 и 1,0), что вы, возможно, сможете возиться, чтобы получить желаемый эффект. Таким образом, вы все равно сможете использовать NSString
, а не беспорядок с иногда уродливым NSAttributedString
.
Большое спасибо !!! –
- 1. Есть ли способ избежать новой строки при использовании `end =`
- 2. Есть ли способ ввода символов в начале новой строки?
- 3. Есть ли способ отображать половину загруженного html или php
- 4. Есть ли способ показать первую половину для каждого цикла, а вторую половину позже?
- 5. Есть ли способ сделать productsum
- 6. Есть ли способ сделать функцию
- 7. Есть ли способ сделать «обратный». =?
- 8. Есть ли способ сделать это?
- 9. Есть ли способ сделать это?
- 10. Есть ли способ сделать это?
- 11. Есть ли способ заполнить половину фона кнопок цветом?
- 12. Сделать половину изображения прозрачным из командной строки
- 13. Есть ли способ сделать ячейки DataGridViewCheckBox меньше?
- 14. Конкатенация строки Java - есть ли лучший способ?
- 15. Есть ли способ сделать разрыв строки в javascript?
- 16. Есть ли способ сделать JNLP без сертификатов?
- 17. Есть ли способ сделать это более эффективным?
- 18. Лучший способ дать новой строки
- 19. Есть ли способ использовать список параметров строки с регулярным выражением (с группами) для построения новой строки?
- 20. Есть ли способ сделать это валидацию общим?
- 21. Есть ли способ сделать этот запрос быстрее?
- 22. Есть ли однострочный способ инициализации строки?
- 23. Есть ли лучший способ сделать это (C#)?
- 24. Есть ли способ предотвратить отпечатку части строки?
- 25. Есть ли способ подсчитать повторяющиеся строки
- 26. Есть ли способ форматирования строки в Flex
- 27. Есть ли способ лучше разбирать строки?
- 28. Есть ли лучший способ избежать этой строки?
- 29. Есть ли лучший способ разбора строки текста?
- 30. Есть ли способ сделать объект полупрозрачным?
Wh Вы имеете в виду «сделать половину новой строки»? Waht вы хотите достичь? – aleroot
@aleroot - Я имею в виду половину пространства, которое обычно создает новая строка. У меня есть несколько пулевых точек, и я хочу оставить немного места между пулями и текстом, ведущим в пули. Регулярная новая строка - это слишком много места, примерно половина права. –
Вы посмотрели на 'NSParagraphStyle'? – Wain