ios - 在 Scrollview ios 中使用 textview 时避免多次滚动

标签 ios swift uiscrollview uitextview

我在 ScrollView 中添加了一个 TextView 。 当我增加 textView 的大小时会出现问题。 第一次滚动发生直到 View 结束。第二次滚动发生在 TextView 中,用于将其滚动到文本末尾。 要阅读整个文本,用户必须将其滚动 2 次,这是不切实际的。

结构如下;

- View - ScrollView - TextView

1) 有没有办法在 View 中填充整个文本以避免在 TextView 中滚动?

2) 我可以将 Scrollviews 的大小设置为与文本一样大吗?

3)如果是,怎么做?

提前谢谢你。

Textview inside Scrollview

End of the Scrollviews scrolling part which didn't show the whole text

End of the Textviews Scrolling part

Structure

Structure

最佳答案

我相信您在问如何只有一个可滚动区域,基本上是 ViewController 的所有 View 。

将您的 textView 的 scrollEnabled 选项设置为 false。它应该使 textView 的固有高度成为显示所有文本的高度,因此您将不再在 ScrollView 中有 ScrollView 。确保您没有指定 textView 的高度,否则它会截断文本。

好的。我创建了一个 demo project我认为您正在寻找的东西。

这里有一些解释。

ScrollView 对其父 View 和兄弟 View 的约束定义了它的帧大小。

从 scrollView 的 subview 到 scrollView 的约束定义了 contentSize。

考虑到这一点。将 scrollView 设置为在其 super View 中居中并具有相同的宽度和高度。 (现在 scrollView 的框架已经定义好了)。

为了定义 scrollview 的 contentSize,我们使用 scrollView 的子元素设置顶部、前导、尾部、底部约束。 (现在创建了 scrollView 的 contentSize)

如果您不必在水平方向滚动,则需要确保子级的宽度小于或等于 scrollView 的父 View 。

希望这些信息对您有所帮助。

关于ios - 在 Scrollview ios 中使用 textview 时避免多次滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30359928/

相关文章:

ios - IOS中的导航栈管理

Xcode 询问我 "who you are"(截图)

ios - 如何检查 iPad 是否为 iPad Pro

iphone - 在 UIScrollView 中显示 UIView 的子区域

ios - 将触摸从 UIView 传递到其下方的 UIScrollView

ios - 如何在xamarin中退出firstresponder触摸 ScrollView

ios - 当新数据可用时如何防止使用缓存?

ios - 如果我使用单例网络服务发出网络请求,是否需要使用 [weak self]?

swift - 如何通过终端或 Swift 禁用三指点击手势?

ios - 使用 UIScrollViewKeyboardDismissModeInteractive 移动栏