限制JASidePanel中心面板幻灯片

时间:2013-05-15 12:17:15

标签: iphone objective-c

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

首先,我希望菜单只有115像素宽。为此我找到了:

self.leftFixedWidth = 115;

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

1 个答案:

答案 0 :(得分:2)

转到JASidePanelController.m

找到- (CGFloat)_correctMovement:(CGFloat)movement;方法,将其替换为:

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