簡體   English   中英

在ECSlidingViewController中,如何禁用頂視圖以使其滑出屏幕

[英]In ECSlidingViewController, how to disable the top view from sliding off screen

所以我正在嘗試在我的App中實現ECSlidingViewController示例。 github源

我唯一想做的修改是防止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的新手,但我對它的工作原理相當了解。 因此,我希望至少能收到正確方向的提示。 謝謝!

只需使用以下方法

- (void)anchorTopViewTo:(ECSide)side animations:(void (^)())animations onComplete:(void(^)())complete

代替

- (void)anchorTopViewOffScreenTo:(ECSide)side animations:(void(^)())animations onComplete:(void(^)())complete

如果只是您要刪除的彈跳,請不要調用:

[self anchorTopViewOffScreenTo:side animations:nil onComplete:nil];

直接致電:

[self.slidingViewController resetTopView];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM