如何使 uitextview 不可滚动但显示所有内容
Posted
技术标签:
【中文标题】如何使 uitextview 不可滚动但显示所有内容【英文标题】:how to make uitextview none scrollable but display all content 【发布时间】:2013-10-30 15:16:57 【问题描述】:目前在我的 IB 中,我有一个视图控制器,它被 UIScroll 视图覆盖。在滚动视图中,顶部有一个 UIImageView,中间有一个 UILableView,底部有一个 MKMapView。 UILableView 的行数设置为 0(无限),并且自动换行允许我显示尽可能多的内容。
我希望能够为我的 UILableView 中的内容点击电话号码和网站 URL。到目前为止,我发现的最好方法是将其更改为 UITextView 来为您处理所有这些。但是......我无法通过滚动获得相同的行为。
在图像、标签和地图之前作为一个块滚动。现在,只有 textView 滚动。任何建议表示赞赏。
【问题讨论】:
【参考方案1】:显示部分是正确的,即根据textView的滚动大小计算textView的frame add this [textView setScrollEnabled:NO];
【讨论】:
这不起作用。它将文本切断到它在 IB 中的框架大小。 哦..对不起,我以为你照顾了框架部分..请添加以下代码..CGSize maximumSize = CGSizeMake(maxWidthOfTextview, 9999); UIFont *myFont = textView.font; CGSize myStringSize = [textView.text sizeWithFont:myFont constrainedToSize:maximumSize lineBreakMode:NSLineBreakByWordWrapping]; textView.frame = CGRectMake (textView.frame.origin.x, textView.frame.origin.y, myStringSize.width, myStringSize.height)
【参考方案2】:
您可以尝试使用这个项目:
https://github.com/mattt/TTTAttributedLabel
label.dataDetectorTypes = NSTextCheckingTypeLink; // Automatically detect links when the label text is subsequently changed
label.delegate = self; // Delegate methods are called when the user taps on a link (see `TTTAttributedLabelDelegate` protocol)
label.text = @"Fork me on GitHub! (http://github.com/mattt/TTTAttributedLabel/)"; // Repository URL will be automatically detected and linked
NSRange range = [label.text rangeOfString:@"me"];
[label addLinkToURL:[NSURL URLWithString:@"http://github.com/mattt/"] withRange:range]; // Embedding a custom link in a substring
【讨论】:
一个很好的解决方法,但是我不想在项目中添加更多***。在 IB 中一定有办法解决这个问题。以上是关于如何使 uitextview 不可滚动但显示所有内容的主要内容,如果未能解决你的问题,请参考以下文章
UITextView 上的 UITableViewCell 选择
添加文本和禁用滚动时如何使 UITextView 字段扩展?