TTStyledTextLabel внутри UITextView
У меня есть необходимость отображать текст, который включает в себя теги HTML и т. Д., И TTStyledTextLabel отвечает всем требованиям..... но он не прокручивается.
Я поместил один внутри UITextView, но это отказывается прокручивать? Если я ввожу текст непосредственно в UITextView, он прокручивается ОК, но затем я вижу весь HTML-формат неформатированным.
Есть ли способ установить TTStyledTextLabel для прокрутки?
Спасибо
2 ответа
Попробуйте положить TTStyledTextLabel
в UIScrollView
,
Кроме того, вы можете рассмотреть возможность использования UIWebView
непосредственно.
Я наконец получил подходящую работу вокруг...
CGSize constraintSize;
CGSize stringSize;
// сделать слишком большой размер пособия
constraintSize.width = 300;
constraintSize.height = 2000;
NSString * s = @ "это может быть как длинный текст, так и короткий, как требуется...;
UIFont * f = [UIFont fontWithName: @ "Arial" размер: 14];
stringSize = [s sizeWithFont: f constrainedToSize: constraintSize lineBreakMode: UILineBreakModeWordWrap];
// создать метку для размещения текста
UILabel * l = [[UILabel alloc] initWithFrame: CGRectMake (14, 2, stringSize.width, stringSize.height)];
l.text = s;
[l setNumberOfLines: 0];
[l sizeToFit];
// теперь создаем TTStyledTextLabel, чтобы соответствовать размеру, который мы только что получили выше
TTStyledTextLabel * tl = [[TTStyledTextLabel alloc] initWithFrame: [l frame]];
// установить текст, используя ссылки и т. д.
tl.text = [TTStyledText textFromXHTML:l.text lineBreaks:YES URL-адреса: YES];
[tl setBackgroundColor: [UIColor clearColor]];
tl.textColor = [UIColor whiteColor];
UIScrollView * sv = [[UIScrollView alloc] initWithFrame: CGRectMake (0, 185, 320, 300)];
// корректируем размер содержимого прокрутки в соответствии с TTStyledTextLabel
[sv setContentSize: CGSizeMake (tl.frame.size.width, tl.frame.size.height)];
[sv addSubview: tl];
[self.view addSubview: sv];
Теперь у меня может быть прокрутка TTStyledTextLabel с авторазмером;-)