所以我試圖在我的應用程序中實現ECSlidingViewController示例。 github source for this在ECSlidingViewController中,如何禁用從屏幕滑出的頂視圖
我想要修改它的唯一方法是防止TopView在它更改包含的視圖之前完全滑出屏幕,而只是保持TopView就位,但更新它包含的視圖與它是從菜單中選擇的新視圖控制器。 Facebook的應用程序正是我想要的,如果這聽起來令人困惑。
四處尋找項目中一段時間後,我已經決定了它絕對(顯然)有事情做這一行的代碼在ECSlidingViewController.h:
- (void)anchorTopViewOffScreenTo:(ECSide)side animations:(void(^)())animations onComplete:(void(^)())complete;
我看着這個地方被調用的.M:
- (void)anchorTopViewOffScreenTo:(ECSide)side{
[self anchorTopViewOffScreenTo:side animations:nil onComplete:nil];
}
- (void)anchorTopViewOffScreenTo:(ECSide)side animations:(void(^)())animations onComplete:(void(^)())complete
{
CGFloat newCenter = self.topView.center.x;
if (side == ECLeft) {
newCenter = -self.resettedCenter;
} else if (side == ECRight) {
newCenter = self.screenWidth + self.resettedCenter;
}
[self topViewHorizontalCenterWillChange:newCenter];
[UIView animateWithDuration:0.25f animations:^{
if (animations) {
animations();
}
[self updateTopViewHorizontalCenter:newCenter];
} completion:^(BOOL finished){
if (complete) {
complete();
}
_topViewIsOffScreen = YES;
[self addTopViewSnapshot];
dispatch_async(dispatch_get_main_queue(), ^{
NSString *key = (side == ECLeft) ? ECSlidingViewTopDidAnchorLeft : ECSlidingViewTopDidAnchorRight;
[[NSNotificationCenter defaultCenter] postNotificationName:key object:self userInfo:nil];
});
}];
}
這是我猜的動畫被告知如何製作動畫,但我不知道如何任何這可以告訴它移動摘屏幕。我可以忽略一些簡單的東西來代替nil
?也許還有其他價值的地方我還沒有找到?這是我在StackOverflow上的第一個問題,儘管我一般都是新來的Obj-C,但我對它的工作原理有很好的把握。所以我希望至少得到一個正確方向的提示。謝謝!
搜索和替換 「self.slidingViewController anchorTopViewOffScreenTo:ECRight」 到 「self.slidingViewController anchorTopViewTo:ECRight」 在'changeTopViewController的方法在MenuViewController.m工作。謝謝! –
這應該是正確的答案。謝謝你幫了我很多。 – Daniel