Nov*_*edy 2 iphone objective-c ios
所以我正在尝试将ECSlidingViewController示例实现到我的应用程序中. github这个来源
我唯一想做的就是修改它,防止TopView在更改包含的视图之前完全滑离屏幕,而只是保持TopView到位,但用它的新视图控制器更新它的包含视图从菜单中选择.Facebook应用程序对此的看法正是我想要的,以防听起来令人困惑.
在项目中查看了一段时间之后,我确定它肯定(显然)与ECSlidingViewController.h中的这行代码有关:
- (void)anchorTopViewOffScreenTo:(ECSide)side animations:(void(^)())animations onComplete:(void(^)())complete;
Run Code Online (Sandbox Code Playgroud)
我查看了.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];
});
}];
}
Run Code Online (Sandbox Code Playgroud)
这是我猜测动画被告知如何动画的地方,但我不明白这有什么可以告诉它移出屏幕.我是否忽略了一些简单的事情,如更换东西nil?也许在某处我还没有找到另一个价值?这是我在StackOverflow上的第一个问题,虽然我对Obj-C一般是新手,但我对它的工作方式有了相当的把握.所以我希望至少得到正确方向的提示.谢谢!
只需使用以下方法
- (void)anchorTopViewTo:(ECSide)side animations:(void (^)())animations onComplete:(void(^)())complete
代替
- (void)anchorTopViewOffScreenTo:(ECSide)side animations:(void(^)())animations onComplete:(void(^)())complete
| 归档时间: |
|
| 查看次数: |
2874 次 |
| 最近记录: |