MFsidemenu 禁用滚动表视图

Posted

技术标签:

【中文标题】MFsidemenu 禁用滚动表视图【英文标题】:MFsidemenu disables scrolltotop table view 【发布时间】:2013-09-26 20:27:58 【问题描述】:

我已经成功实现了 MFSideMenu,以便所有导航都能正常工作除了 scrollsToTop 在滚动视图中(特别是在我的 TableViewControllers 和 UIscrollview 占据整个框架的一个 ViewController 中)。 scrollsToTop 不起作用,即使在每个 TableView 中都启用了它。

我知道是 MFSideMenu 导致了这个问题,因为我从项目中删除了它,然后 scrollsToTop 工作正常。

下面是我在启动时从 AppDelegate 调用 MFSideMenu 的方式:

//Instantiate the Side Menu and the center view
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];
UITabBarController *tabBarController = [storyboard instantiateViewControllerWithIdentifier:@"MainTabBar"];

SideMenuViewController *leftSideMenuController = [[SideMenuViewController alloc] init];
UINavigationController *leftViewNavigationController = [[UINavigationController alloc] initWithRootViewController:leftSideMenuController];
MFSideMenuContainerViewController *container = [MFSideMenuContainerViewController
                                                containerWithCenterViewController:tabBarController
                                                leftMenuViewController:leftViewNavigationController
                                                rightMenuViewController:nil];

self.window.rootViewController = container;
[self.window makeKeyAndVisible];

我关心的TableView是嵌入在NavigationControllers中的,它嵌入在上面代码中引用的tabBarController中。当我删除这段代码时,scrollsToTop 可以正常工作。

我想我需要调整容器以以某种方式包含 TableViewControllers。关于如何做到这一点的任何想法?

【问题讨论】:

【参考方案1】:

我自己的问题的答案:

问题似乎是我在导航控制器中有左侧菜单。所以我放弃了这一点,并为菜单控制器制作了故事板布局。在那个故事板布局中,我添加了一个导航栏来掩盖通常出现在这个版本的 MFSideMenu 中的黑色空间。

所以 AppDelegate 中的新窗口设置是...

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];
UITabBarController *tbc = [storyboard instantiateViewControllerWithIdentifier:@"MainTabBar"];


//Then put get the left side menu controller, but inside of a navcontroller
SideMenuViewController *leftSideMenuController = [storyboard instantiateViewControllerWithIdentifier:@"SideMenu"];
MFSideMenuContainerViewController *container = [MFSideMenuContainerViewController
                                                containerWithCenterViewController:tbc
                                                leftMenuViewController:leftSideMenuController                                                    rightMenuViewController:nil];

self.window.rootViewController = container;
[self.window makeKeyAndVisible];

另一个 UIViewController 中的滚动视图问题原来是自动布局问题。

【讨论】:

以上是关于MFsidemenu 禁用滚动表视图的主要内容,如果未能解决你的问题,请参考以下文章

缩放图表中的页面滚动问题

3.复杂查询

如果子视图正在滚动,则禁用超级视图滚动

在某些情况下禁用滚动视图右侧

禁用滚动视图中的反弹禁用 pageView 控制器中的水平滚动

如何禁用滚动视图子视图的点击手势?