如何使 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 字段扩展?

当键盘可见时如何使 UITextView 一直滚动到底部

在 UITextview 中获取被点击的单词

如果没有在 Swift 中加载 URL,如何使 WKWebView 不可滚动?

如何使用 UILabel 支持自动调整 UITableViewCell 的大小