Мне нужно пробить текст многострочной метки. Есть ли способ сделать это? Любое предложение было бы очень полезно. Спасибо,ударить по тексту
ответ
, если вы хотите сделать это с UILabel для iPhone вы не можете :(
так есть 3 способа:
(простейший) использовать UIWebView:
// set html header with styles, you can certainly use some other attributes NSString * htmlWrap = @"<html><head><style>body{text-align:left; background-color:transparent; color:black; font-weight:bold; text-decoration:line-through; font-size:%dpt}`</style></head>`<body>%@</body`></html>"; NSStrring * myText = @"My sample strikethrough text"; webView.backgroundColor = [UIColor clearColor]; [webView setOpaque:NO]; NSString * htmlText = [NSString stringWithFormat:htmlWrap, 12, myText]; [webView loadHTMLString:htmlText baseURL:nil];
Использование unicode, объединяющее диакритические (это работает с любыми объектами, надписи, текстовые поля и т. Д.)
«длинный штрих наложения» (U + 0336) или
«Объединение низкой линии» (U + 0332) до
каждый charecter в вашей строке. Используйте-(void)getCharacters:(unichar *)buffer range:(NSRange)aRange
создать unichar массив из строки (выделить двойной размер длины строки), а затем переставить массив и добавить U + 0336 или U + 0332 до каждого символа, а затем преобразовать unichar массив обратно в NSString с
-(id)initWithCharacters:(const unichar *)characters length:(NSUInteger)length
, но в большинстве случаев это выглядит плохо
Draw это вручную от контекста.
Это будет работать с одной строкой.
@interface UILabelStrikeThrough : UILabel {
}
@end
@implementation UILabelStrikeThrough
- (void)drawRect:(CGRect)rect {
CGContextRef c = UIGraphicsGetCurrentContext();
CGFloat black[4] = {0.0f, 0.0f, 0.0f, 1.0f};
CGContextSetStrokeColor(c, black);
CGContextSetLineWidth(c, 2);
CGContextBeginPath(c);
CGFloat halfWayUp = (self.bounds.size.height - self.bounds.origin.y)/2.0;
CGContextMoveToPoint(c, self.bounds.origin.x, halfWayUp);
CGContextAddLineToPoint(c, self.bounds.origin.x + self.bounds.size.width, halfWayUp);
CGContextStrokePath(c);
[super drawRect:rect];
}
@end
, но is drawrect называется, когда мы setText, я попробовал его с помощью setText, но не работал. – sole007
Улучшенный код @RefuX для обработки местоположения и ширины зачеркивания. Я добавлю многострочную поддержку в ближайшее время.
Несколько строк теперь поддерживается
Apple не поддерживает изменение в любом пользовательском интерфейсе ... Его работа прекрасна, но Apple отвергает приложение, если мы используем этот код ... – Raj
Почему Apple отвергает? Я выпустил приложение с этим кодом. –
- 1. Нокаут asyncCommand - ударить по методу
- 2. Передать по тексту Textbox.Text
- 3. Выберите ярлык по тексту
- 4. IF логика по тексту
- 5. Проведите по тексту, iOS
- 6. Выберите вариант по тексту
- 7. Центрирование изображений по тексту
- 8. изображение по тексту
- 9. Фильтровать журнал по тексту?
- 10. Фильтр E4X по тексту?
- 11. Распознавание дат по тексту
- 12. Найти элементы по тексту
- 13. Отправка местоположения по тексту
- 14. Сжатие LZW по тексту
- 15. ОЧЕРЕдЬ флэш изображения ударить сервер по одному
- 16. Как ударить по почте в андроид?
- 17. ударить по выбранной строке в NSTableView
- 18. Как ударить по URL-адресу в javascript
- 19. Разработка данных по неструктурированному тексту
- 20. Сортировка многомерного массива по тексту
- 21. Странное вертикальное пространство по тексту
- 22. Значок уведомления по новому тексту
- 23. Положить фоновое изображение по тексту?
- 24. CheckedListBox - Поиск элемента по тексту
- 25. QTreeWidgetItem найти ребенка по тексту
- 26. Derby: Поиск по всему тексту
- 27. Выпадающий список заказов по тексту
- 28. Предельные данные Spotfire по тексту
- 29. Java - список индексированных по тексту
- 30. C# - Пользовательский блокнот по тексту
Вы имеете в виду UILabel? – kennytm