Ios 当滚动离开时,UITabBar/UITabBarController阻止触摸

Ios 当滚动离开时,UITabBar/UITabBarController阻止触摸,ios,uitabbarcontroller,uitabbar,Ios,Uitabbarcontroller,Uitabbar,我有一个自定义的UITabBarController子类,它修改了一个委托,该委托具有移动选项卡栏框架的功能(特别是frame.origin.y)。当偏移量等于屏幕高度时(即,它在屏幕外隐藏),我有一个UIScrollView延伸到屏幕底部。在该UIScrollView中,我无法在选项卡视图的初始帧中接收到触摸 我看到过向uitabar或控制器视图添加难处理子视图的建议。这远远不够优雅,在处理可能占据整个屏幕的视图时会产生大量的设计问题。我已经查看了UITabBarController和UITa

我有一个自定义的
UITabBarController
子类,它修改了一个委托,该委托具有移动选项卡栏框架的功能(特别是
frame.origin.y
)。当偏移量等于屏幕高度时(即,它在屏幕外隐藏),我有一个
UIScrollView
延伸到屏幕底部。在该
UIScrollView
中,我无法在选项卡视图的初始帧中接收到触摸

我看到过向
uitabar
或控制器视图添加难处理子视图的建议。这远远不够优雅,在处理可能占据整个屏幕的视图时会产生大量的设计问题。我已经查看了
UITabBarController
UITabBar
的小型公共实现代码,但是我在那里看到的任何东西都没有显示它们是如何阻止这些接触的

我知道命中测试的递归性质,但是除了覆盖命中测试和在
UITabBarController
子类中重新路由touch之外,我想不出一种通用的方法来处理这个问题。这个问题涉及到苹果的
UITabBarController
/
UITabBar
实现,但为了清晰起见,我已经包含了一些相关代码:

class tab_bar_controller: UITabBarController, UITabBarControllerDelegate, tab_bar_setter //has included function
{

//.... irrelevant implementation


    func shift(visibility_percent: CGFloat) -> CGFloat //returns origin
    {
            self.tabBar.frame.origin.y = screen_size().height - (visibility_percent * self.tabBar.frame.size.height)
            self.tabBar.userInteractionEnabled = visibility_percent != 0 //no effect
            //self.view.userInteractionEnabled = visibility_percent != 0 //blocks all touches within screen.bounds
            return self.tabBar.frame.origin.y
    }
}

我没有足够的赏金来否认这一编辑,但这使这篇文章难以阅读。请查看初始帖子:tl;dr正在寻找一种优雅的方式来接收uitabbar(来自uitabbarcontroller)以前的触摸(当tabBar的框架被[故意]调整以允许内容使用该空间时)。我同意它几乎不可读,所以我尝试恢复编辑,但看起来除了没有代码标签外,原始内容是一样的?我将把这些句子分解一下,并尝试改进一下……原来的编辑也做了一些修改,完全改变了意思;例如,将“可交互”一词改为“难处理”,等等。但是谢谢你,我认为你确实提高了可读性。