Iphone 具有滑动效果的Tabbar控制器

Iphone 具有滑动效果的Tabbar控制器,iphone,ios,uiviewcontroller,uitabbarcontroller,Iphone,Ios,Uiviewcontroller,Uitabbarcontroller,我尝试使用Tabbar控制器,效果如下: 通过滑动,viewcontroller将重定向到下一个选项卡。我们如何在iOS中实现这一点?还有其他控件可以这样做吗?只需将UISweepGestureRecognizer添加到tabBarView控制器中,并在滑动后更改tabBar索引即可 swipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self

我尝试使用Tabbar控制器,效果如下:


通过滑动,viewcontroller将重定向到下一个选项卡。我们如何在iOS中实现这一点?还有其他控件可以这样做吗?

只需将UISweepGestureRecognizer添加到tabBarView控制器中,并在滑动后更改tabBar索引即可

swipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self 
                                                                      action:@selector(swipeMethod:)];
swipeRecognizer.direction = UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionLeft; 
[self addGestureRecognizer:swipeRecognizer];  
我处理刷卡的方法是:

-(void)swipeMethod: (UISwipeGestureRecognizer *) sender
{
    NSLog(@"Swipe!");   
} 
编辑

或者,您可以使用
UIScrollView
启用分页和
UIView
来显示数据

这是您要查找的教程

您可以使用此课程来实现您的目标

否则,您必须使用以下方法为tabbar上的点击制作动画

[UIView transitionFromView:<#(UIView *)#> toView:<#(UIView *)#> duration:<#(NSTimeInterval)#> options:<#(UIViewAnimationOptions)#> completion:<#^(BOOL finished)completion#>]
[UIView转换从视图:到视图:持续时间:选项:完成:]

GitHub上有一个用于此功能的库,名为MGSwipeTabBarController,它的设计正是为了满足您的需求

这很简单:

NSArray *viewControllers = . . . //your view controllers
MGSwipeTabBarController *swipeController = [[MGSwipeTabBarController alloc] initWithViewControllers:viewControllers]; 
请注意,它仅与iOS7和+兼容,并且您仍需要设计自己的选项卡栏,使用
mgswipateabbarcontrollerdelegate
协议响应滚动事件


如果有人仍在寻找,您可以在此youtube系列中找到另一个实现

编辑:

  • 据我所知,根据视频,您希望在一个视图控制器中使用两个
    uicollectionview
    。一个集合视图用于显示内容(应用程序),另一个用于包含类别的水平导航

  • 要创建绿色“突出显示”栏,您可以使用
    ui视图
    并使用
    约束-heightAnchor/widthAnchor
    调整栏的高度/宽度,然后将其添加到导航栏中

  • 要使滚动条随着用户将要滑动的距离移动,有一种方法可以覆盖以捕获水平滚动,称为
    scrollViewDidScroll
    。从这里,您需要从
    UIView
    的约束(类型为
    NSLayoutConstraint
    )中提供一个变量,以便能够更新
    UIView
    的x位置

    override func scrollViewDidScroll(_ scrollView: UIScrollView) 
    {
        print(scrollView.contentOffset.x)
        menuBar.myGreenBarLeftConstraint.constant = scrollView.contentOffset.x / 4 
        //or however many categories you have
    }
    

  • 我知道这会有用的。但是,这不会产生我期望的效果。你期望的效果是什么?像android mobile play Store一样,你可以使用
    UIScrollView
    启用分页和
    UIView
    来显示你的数据。我发现在这方面我们可以做我期望的事情。在我的应用程序中,我必须用三个选项卡显示3个tableview。如何使用此滑动进行此操作?您可以将UIScrollview与包含视图控制器i一起使用。EaddchildViewcontroller方法…@Kalpesh是否有与此相关的示例代码?