gpt4 book ai didi

iOS SDK : Two TextViews in one ScrollView?

转载 作者:行者123 更新时间:2023-11-29 05:03:11 25 4
gpt4 key购买 nike

是否可以将两个TextView放在一个ScrollView中,这样只有ScrollView滚动,而嵌入的两个TextView不能独立滚动? (但是如果 ScrollView 滚动,TextView 也应该滚动,以便显示其余的文本。)

谢谢。问候,丹尼尔

编辑:

当前代码http://www.muehlbachler.org/spt.zip

声明我需要什么以及应用程序到目前为止的功能:其中一部分(刚刚需要的部分)是一个简单的端口检查器,它检查一系列端口是否打开或被主机拒绝。为此,表单下方有两个主要部分,称为“开放端口”和“封闭端口”。每个主要部分下有两个 TextView ,其中显示端口(打开或关闭)。我制作了两个 TextView ,因为如果您想查看所有打开/关闭的端口,这是一个更好的体验,因为这样您就不能经常滚动。现在的问题是每个 TextView 都可以独立滚动,但这有点令人讨厌,因为我只想将打开/关闭的端口 TextView 一起滚动。事实上,两个 TextView 必须组合在一起,以便它们只能一起滚动。举个例子:假设您有 100 个关闭的端口,它们现在显示为两个 TextView (50 : 50)。现在您想要快速查看所有关闭的端口号,并且(现在)您必须滚动两次,因为您必须分别滚动 textview1 和 textview2。现在出现了期望的行为:您只想滚动一次,如果您滚动那一次,您希望看到所有关闭的端口(因为两个单独的 TextView 都滚动)。我的想法是,我只是在 TextView 之前放置一个 ScrollView ,然后我可以将它们滚动在一起,但这不起作用......:(

编辑:

已添加图片。由于我的声誉,我不被允许添加图片,所以我上传了它:http://www.muehlbachler.org/spt.jpg

最佳答案

我会采取稍微不同的策略来尝试保持两个 TextView 滚动位置同步。我会将整个 View 的 UIViewController 设为 UIScrollViewDelegate。我将实现一个 scrollViewDidScroll: 方法,该方法会询问刚刚滚动的 TextView 滚动到的位置,然后告诉其他 TextView 滚动到相同的位置。为了防止此方法不断重复的循环,我设置了一个标志以在发送滚动消息之前进行检查。如果保证两个 TextView 的大小相同,则这非常容易,但如果它们大小不同,则可能需要更多工作。也许滚动位置将按百分比计算。也许 ScrollView 需要了解内容,并滚动到特定标题。

可以实现 UIScrollViewDelegate 中的其他方法来在用户滚动期间保持同步,具体取决于我希望滚动 TextView 的行为方式。

回应评论:

听起来百分比计算在这种情况下效果最好。每个 ScrollView 都有 contentSizecontentOffset 属性。另一个 View 的偏移量可以使用 (thisView.contentOffset.x/thisView.contentSize.height) * otherView.contentSize.height 计算。

我认为如果在另一个滚动上调用 setContentOffset:animated: 会触发对委托(delegate)的 scrollViewDidScroll: 方法的另一次调用,则可能需要该标志。检查标志可以停止循环。如果设置了该标志,则不要告诉其他 ScrollView 移动,因为这是一个反动的 scrollViewDidScroll

scrollViewDidScroll: 每次需要重绘 ScrollView 时都会调用。因此,在一次用户交互中,该方法可能会被调用数百次。仅此一项就能够保持两个 ScrollView 同步。

关于iOS SDK : Two TextViews in one ScrollView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6357523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com