开发者

TTStyledTextLabel inside UITextView

开发者 https://www.devze.com 2023-03-12 22:36 出处:网络
I have a need to display text that includes HTML tags etc and TTStyledTextLabel fits the bill.....but it does not scroll.

I have a need to display text that includes HTML tags etc and TTStyledTextLabel fits the bill.....but it does not scroll.

I placed one inside a UITextView but this refuses to scroll? If I enter the text directly in the UITextView it scrolls 开发者_运维知识库OK but then I see all the HTML unformatted.

Is there a way to set TTStyledTextLabel to scroll?

Thanks


Try putting the TTStyledTextLabel in a UIScrollView.

Alternately, you can consider using a UIWebView directly.


I finally got a suitable work around...

CGSize constraintSize;

CGSize stringSize;

// make an overly big size allowance

constraintSize.width = 300;

constraintSize.height = 2000;

NSString *s = @"this can be text as long or as short as required...;

UIFont *f = [UIFont fontWithName:@"Arial" size:14];

stringSize =[s sizeWithFont:f constrainedToSize: constraintSize lineBreakMode: UILineBreakModeWordWrap];

// create a label to accomodate the text

UILabel *l = [[UILabel alloc] initWithFrame:CGRectMake(14, 2, stringSize.width, stringSize.height)];

l.text = s;

[l setNumberOfLines:0];

[l sizeToFit];

// now create a TTStyledTextLabel to match the size we just obtained above

TTStyledTextLabel *tl = [[TTStyledTextLabel alloc] initWithFrame:[l frame]];

// set the text making use of links etc

tl.text = [TTStyledText textFromXHTML:l.text lineBreaks:YES URLs:YES];

[tl setBackgroundColor:[UIColor clearColor]];

tl.textColor = [UIColor whiteColor];

UIScrollView *sv = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 185, 320, 300)];

// adjust scrollview content size to accomodate the TTStyledTextLabel

[sv setContentSize:CGSizeMake(tl.frame.size.width, tl.frame.size.height)];

[sv addSubview:tl];

[self.view addSubview:sv];

Now I can have an auto sizing TTStyledTextLabel that scrolls ;-)

0

精彩评论

暂无评论...
验证码 换一张
取 消