Iphone 限位面板中间面板滑块

Iphone 限位面板中间面板滑块,iphone,objective-c,Iphone,Objective C,嗨,我正在使用JASidePanels创建左侧菜单样式,但我想做一些特殊的更改 首先,我希望菜单只有115像素宽。为此,我发现: self.leftFixedWidth = 115; 好的,但是,我仍然可以将中间面板向右滑动,并查看“隐藏”的内容。有没有办法将其最大位置固定在115像素?就像facebook菜单一样?转到JASidePanelController.m 查找-(CGFloat)\u更正移动:(CGFloat)移动方法,将其替换为以下内容: - (CGFloat)_correctM

嗨,我正在使用JASidePanels创建左侧菜单样式,但我想做一些特殊的更改

首先,我希望菜单只有115像素宽。为此,我发现:

self.leftFixedWidth = 115;

好的,但是,我仍然可以将中间面板向右滑动,并查看“隐藏”的内容。有没有办法将其最大位置固定在115像素?就像facebook菜单一样?

转到JASidePanelController.m

查找
-(CGFloat)\u更正移动:(CGFloat)移动方法,将其替换为以下内容:

- (CGFloat)_correctMovement:(CGFloat)movement {
    CGFloat position = _centerPanelRestingFrame.origin.x + movement;
    if (self.state == JASidePanelCenterVisible) {
        if (self.state != JASidePanelLeftVisible) {
          if (position >= self.leftVisibleWidth) {
            return self.leftVisibleWidth;
          }
        }
        else if ((position > 0.0f && !self.leftPanel) || (position < 0.0f && !self.rightPanel)) {
            return 0.0f;
        }
    } else if (self.state == JASidePanelRightVisible && !self.allowRightOverpan) {
        if ((position + _centerPanelRestingFrame.size.width) < (self.rightPanelContainer.frame.size.width - self.rightVisibleWidth)) {
            return 0.0f;
        } else if (position > self.rightPanelContainer.frame.origin.x) {
            return self.rightPanelContainer.frame.origin.x - _centerPanelRestingFrame.origin.x;
        }
    } else if (self.state == JASidePanelLeftVisible  && !self.allowLeftOverpan) {
        if (position > self.leftVisibleWidth) {
            return 0.0f;
        } else if (position < self.leftPanelContainer.frame.origin.x) {
            return  self.leftPanelContainer.frame.origin.x - _centerPanelRestingFrame.origin.x;
        }
    }
    return movement;
}
-(CGFloat)\u纠正移动:(CGFloat)移动{
CGFloat位置=_centerPanelRestingFrame.origin.x+移动;
if(self.state==JASidePanelCenterVisible){
if(self.state!=JASidePanelLeftVisible){
如果(位置>=self.leftVisibleWidth){
返回self.leftVisibleWidth;
}
}
else如果((位置>0.0f&&!self.leftPanel)| |(位置<0.0f&&!self.righpanel)){
返回0.0f;
}
}else if(self.state==JASidePanelRightVisible&!self.allowRightOverpan){
如果((位置+_centerPanelRestingFrame.size.width)<(self.rightPanelContainer.frame.size.width-self.rightVisibleWidth)){
返回0.0f;
}else if(位置>self.rightPanelContainer.frame.origin.x){
返回self.rightPanelContainer.frame.origin.x-_centerPanelRestingFrame.origin.x;
}
}else if(self.state==JASidePanelLeftVisible&&!self.allowLeftOverpan){
如果(位置>自左可视宽度){
返回0.0f;
}else if(位置
Nice,它只适用于第一次平移运动。现在,如果我试图在左面板可见的情况下移动中心面板,我希望保持这样的状态。再添加两个比较使其对我有效:
else if(self.leftVisibleWidth+movement>self.leftFixedWidth){return self.leftPanelContainer.frame.origin.x;}else if(self.leftVisibleWidth+移动