现在的位置: 首页 > 综合 > 正文

Sidebar 左右菜单的使用

2018年02月02日 ⁄ 综合 ⁄ 共 5386字 ⁄ 字号 评论关闭

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];  
            }
        }
        
        
	}
    
    
}

抱歉!评论已关闭.