swift – 如何使ScrollView中的TableView滚动自然

swift – 如何使ScrollView中的TableView滚动自然,第1张

概述我需要做这个有奇怪配置的应用程序。 如下图所示,主视图是UIScrollView。那么里面应该有一个UIPageView,每一页的PageView都应该有一个UITableView。 到目前为止我已经做了这一切。但是我的问题是我希望滚动自然地行动。 接下来是我自然的意思。当我在其中一个UITableView上滚动时,它会滚动tableview(而不是scrollview)。但是我希望它滚动Scro 我需要做这个有奇怪配置的应用程序。

如下图所示,主视图是UIScrollVIEw。那么里面应该有一个UIPageVIEw,每一页的PageVIEw都应该有一个UItableVIEw。

到目前为止我已经做了这一切。但是我的问题是我希望滚动自然地行动。

接下来是我自然的意思。当我在其中一个UItableVIEw上滚动时,它会滚动tablevIEw(而不是scrollvIEw)。但是我希望它滚动ScrollVIEw,除非scrollvIEw不能滚动,因为它到达其顶部或底部(在这种情况下,我希望滚动表视图)。

例如,假设我的滚动视图当前滚动到顶部。然后我把手指放在桌面上(当前页面显示)并开始向下滚动。我这种情况下,我想要滚动浏览(没有tablevIEw)。如果我继续滚动我的滚动视图,它到达底部,如果我从显示屏上移除我的手指,并将其放回teblevIEw并再次向下滚动,我希望我的表视图向下滚动,因为scrollvIEw到底部,它不是能够保持滚动。

你们有没有关于如何实现这个滚动的想法?

我真的迷失了这个。任何帮助将非常感谢它:(

谢谢!

同时处理滚动视图和表视图的解决方案围绕着uiscrollviewdelegate。因此,您的视图控制器是否符合该协议:
class VIEwController: UIVIEwController,uiscrollviewdelegate {

我将代表滚动视图和表视图作为出口:

@IBOutlet weak var scrollVIEw: UIScrollVIEw!@IBOutlet weak var tableVIEw: UItableVIEw!

我们还需要跟踪滚动视图内容的高度以及屏幕高度。你会明白为什么以后。

let screenHeight = UIScreen.mainScreen().bounds.heightlet scrollVIEwContentHeight = 1200 as CGfloat

vIEwDIDLoad ::需要一些配置

overrIDe func vIEwDIDLoad() {    super.vIEwDIDLoad()    scrollVIEw.contentSize = CGSizeMake(scrollVIEwContentWIDth,scrollVIEwContentHeight)    scrollVIEw.delegate = self    tableVIEw.delegate = self     scrollVIEw.bounces = false    tableVIEw.bounces = false    tableVIEw.scrollEnabled = false}

在那里我已经关闭d跳来保持简单。关键设置是滚动视图和表视图的代理,并且首先使表视图滚动关闭。

这些是必要的,以便scrollVIEwDIDScroll:delegate方法可以处理到达滚动视图的底部并到达表视图的顶部。这是那个方法:

func scrollVIEwDIDScroll(scrollVIEw: UIScrollVIEw) {    let yOffset = scrollVIEw.contentOffset.y    if scrollVIEw == self.scrollVIEw {        if yOffset >= scrollVIEwContentHeight - screenHeight {            scrollVIEw.scrollEnabled = false            tableVIEw.scrollEnabled = true        }    }    if scrollVIEw == self.tableVIEw {        if yOffset <= 0 {            self.scrollVIEw.scrollEnabled = true            self.tableVIEw.scrollEnabled = false        }    }}

委托方法正在检测滚动视图何时到达底部。当发生这种情况时,表视图可以滚动。它也会检测表视图到达顶部的哪个滚动视图被重新启用。

我创建了一个GIF来展示结果:

总结

以上是内存溢出为你收集整理的swift – 如何使ScrollView中的TableView滚动自然全部内容,希望文章能够帮你解决swift – 如何使ScrollView中的TableView滚动自然所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1053915.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存