Sidebar 左右菜单的使用

举报
清雨小竹 发表于 2022/09/24 23:40:11 2022/09/24
【摘要】 panInContentView----左右菜单控制函数 - (void)panInContentView:(UIPanGestureRecognizer *)panGestureReconginzer { if (panGestureReconginzer.state == UIGestureRecognizerS...

panInContentView----左右菜单控制函数

- (void)panInContentView:(UIPanGestureRecognizer *)panGestureReconginzer
{

    if (panGestureReconginzer.state == UIGestureRecognizerStateChanged)
    {
        CGFloat translation = [panGestureReconginzer translationInView:self.contentView].x;
        self.contentView.transform = CGAffineTransformMakeTranslation(translation+currentTranslate, 0);
        UIView *view ;
        if (translation+currentTranslate>0)
        {
            view = self.leftSideBarViewController.view;
        }
        else
        {
            view = self.rightSideBarViewController.view;
        }
        [self.navBackView bringSubviewToFront:view];
        
	} else if (panGestureReconginzer.state == UIGestureRecognizerStateEnded)
    {
		currentTranslate = self.contentView.transform.tx;
        if (!sideBarShowing)//开
        {
            if (fabs(currentTranslate)<ContentMinOffset)
            {
                [self moveAnimationWithDirection:SideBarShowDirectionNone duration:MoveAnimationDuration];
            }else if(currentTranslate>ContentMinOffset)
            {
                [self moveAnimationWithDirection:SideBarShowDirectionLeft duration:MoveAnimationDuration];
            }
            else
            {
                [self moveAnimationWithDirection:SideBarShowDirectionRight duration:MoveAnimationDuration];
            }
        }
        else //关
        {
            if (fabs(currentTranslate)<ContentChangeset)
            {
                [self moveAnimationWithDirection:SideBarShowDirectionNone duration:MoveAnimationDuration];
                
            }
            else if(currentTranslate>ContentChangeset)
            {
                
                [self moveAnimationWithDirection:SideBarShowDirectionLeft duration:MoveAnimationDuration];
                
            }
            else
            {
                [self moveAnimationWithDirection:SideBarShowDirectionRight duration:MoveAnimationDuration];
            }
        }
        
        
	}
    
   
}


2.只要左菜单

- (void)panInContentView:(UIPanGestureRecognizer *)panGestureReconginzer
{

    if (panGestureReconginzer.state == UIGestureRecognizerStateChanged)
    {
        CGFloat translation = [panGestureReconginzer translationInView:self.contentView].x;
        self.contentView.transform = CGAffineTransformMakeTranslation(translation+currentTranslate, 0);
        UIView *view ;
        
        view = self.leftSideBarViewController.view;
        
        [self.navBackView bringSubviewToFront:view];
        
	} else if (panGestureReconginzer.state == UIGestureRecognizerStateEnded)
    {
		currentTranslate = self.contentView.transform.tx;
        if (!sideBarShowing)//开
        {
            if (currentTranslate>ContentMinOffset)
            {
               [self moveAnimationWithDirection:SideBarShowDirectionLeft duration:MoveAnimationDuration];
            } 
            else
            {
                [self moveAnimationWithDirection:SideBarShowDirectionNone duration:MoveAnimationDuration];
            }
           
        }
        else //关
        {
            [self moveAnimationWithDirection:SideBarShowDirectionNone duration:MoveAnimationDuration];
        }
        
	}
}

3.只要右边

- (void)panInContentView:(UIPanGestureRecognizer *)panGestureReconginzer
{
    
    if (panGestureReconginzer.state == UIGestureRecognizerStateChanged)
    {
        CGFloat translation = [panGestureReconginzer translationInView:self.contentView].x;
        self.contentView.transform = CGAffineTransformMakeTranslation(translation+currentTranslate, 0);
        UIView *view ;
        
        view = self.rightSideBarViewController.view;
        
        [self.navBackView bringSubviewToFront:view];
        
    } else if (panGestureReconginzer.state == UIGestureRecognizerStateEnded)
    {
        currentTranslate = self.contentView.transform.tx;
        if (!sideBarShowing)//开
        {
            
            if(currentTranslate<ContentMinOffset)
            {
                [self moveAnimationWithDirection:SideBarShowDirectionRight duration:MoveAnimationDuration];
            }
            else
            {
                [self moveAnimationWithDirection:SideBarShowDirectionNone duration:MoveAnimationDuration];
            }
        }
        else //关
        {
            [self moveAnimationWithDirection:SideBarShowDirectionNone duration:MoveAnimationDuration];
        }
        
        
    }
}


综合写法

- (void)panInContentView:(UIPanGestureRecognizer *)panGestureReconginzer
{
    
    if (panGestureReconginzer.state == UIGestureRecognizerStateChanged)
    {
        CGFloat translation = [panGestureReconginzer translationInView:self.contentView].x;
        self.contentView.transform = CGAffineTransformMakeTranslation(translation+currentTranslate, 0);
        UIView *view ;
        if(isOpenRight==YES&&isOpenLeft==YES)
        {
            if (translation+currentTranslate>0)
            {
                view = self.leftSideBarViewController.view;
            }
            else
            {
                view = self.rightSideBarViewController.view;
            }
        }
        else if(isOpenLeft==YES&&isOpenRight==NO)
        {
            view = self.leftSideBarViewController.view;
        }
        else if(isOpenLeft==NO&&isOpenRight==YES)
        {
            view = self.rightSideBarViewController.view;
        }
        [self.navBackView bringSubviewToFront:view];
        
	} else if (panGestureReconginzer.state == UIGestureRecognizerStateEnded)
    {
		currentTranslate = self.contentView.transform.tx;
        if (!sideBarShowing)//开
        {
            if(isOpenRight==YES&&isOpenLeft==YES)
            {
                if (fabs(currentTranslate)<ContentMinOffset)
                {
                    [self moveAnimationWithDirection:SideBarShowDirectionNone duration:MoveAnimationDuration];
                }else if(currentTranslate>ContentMinOffset)
                {
                    [self moveAnimationWithDirection:SideBarShowDirectionLeft duration:MoveAnimationDuration];
                }
                else
                {
                    [self moveAnimationWithDirection:SideBarShowDirectionRight duration:MoveAnimationDuration];
                }
            }
            else if(isOpenLeft==YES&&isOpenRight==NO)
            {
                if(currentTranslate>ContentMinOffset)
                {
                    [self moveAnimationWithDirection:SideBarShowDirectionLeft duration:MoveAnimationDuration];
                }
                else
                {
                    [self moveAnimationWithDirection:SideBarShowDirectionNone duration:MoveAnimationDuration];
                }
            }
            else if(isOpenLeft==NO&&isOpenRight==YES)
            {
                if(currentTranslate<ContentMinOffset)
                {
                    [self moveAnimationWithDirection:SideBarShowDirectionRight duration:MoveAnimationDuration];
                }
                else
                {
                    [self moveAnimationWithDirection:SideBarShowDirectionNone duration:MoveAnimationDuration];
                }
            }
        }
        else //关
        {
            if(isOpenRight==YES&&isOpenLeft==YES)
            {
                if (fabs(currentTranslate)<ContentChangeset)
                {
                    [self moveAnimationWithDirection:SideBarShowDirectionNone duration:MoveAnimationDuration];
                    
                }
                else if(currentTranslate>ContentChangeset)
                {
                    
                    [self moveAnimationWithDirection:SideBarShowDirectionLeft duration:MoveAnimationDuration];
                    
                }
                else
                {
                    [self moveAnimationWithDirection:SideBarShowDirectionRight duration:MoveAnimationDuration];
                }
            }
            else{
                [self moveAnimationWithDirection:SideBarShowDirectionNone duration:MoveAnimationDuration];  
            }
        }
        
        
	}
    
    
}


文章来源: zzzili.blog.csdn.net,作者:清雨小竹,版权归原作者所有,如需转载,请联系作者。

原文链接:zzzili.blog.csdn.net/article/details/8510156

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。