Skip to content

Commit 0a4d60f

Browse files
committed
replace transition with UIViewControllerAnimatedTransitioning
1 parent ed2a405 commit 0a4d60f

4 files changed

Lines changed: 62 additions & 13 deletions

File tree

FEPopupMenuController/FEPopupMenuController.m

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
#import "FEPopupMenuController.h"
1010
#import "FEPopupMenuItemCell.h"
11+
#import "FEPopupMenuControllerAnimatedTransitioning.h"
1112

1213
static const CGFloat kDefaultContentViewWidth = 130.0;
1314

@@ -86,20 +87,9 @@ -(void)showInViewController:(UIViewController *)viewController atPosition:(CGPoi
8687
[self.tableView reloadData];
8788

8889
// present style
89-
if (floor(NSFoundationVersionNumber) >= NSFoundationVersionNumber_iOS_8_0) {
90-
// iOS8+
91-
self.modalPresentationStyle = UIModalPresentationOverCurrentContext;
92-
self.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
93-
}else{
94-
// iOS7
95-
UIViewController *root = viewController;
96-
while (root.parentViewController) {
97-
root = root.parentViewController;
98-
}
99-
root.modalPresentationStyle = UIModalPresentationCurrentContext;
100-
}
101-
90+
self.modalPresentationStyle = UIModalPresentationCustom;
10291
self.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
92+
10393
[viewController presentViewController:self animated:YES completion:nil];
10494
}
10595

@@ -161,4 +151,20 @@ - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceive
161151
return YES;
162152
}
163153

154+
#pragma mark <UIViewControllerAnimatedTransitioning>
155+
156+
- (id<UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source
157+
{
158+
FEPopupMenuControllerAnimatedTransitioning *transitioning = [FEPopupMenuControllerAnimatedTransitioning new];
159+
// transitioning.presenting = YES;
160+
return transitioning;
161+
}
162+
163+
- (id<UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController:(UIViewController *)dismissed
164+
{
165+
FEPopupMenuControllerAnimatedTransitioning * transitioning = [FEPopupMenuControllerAnimatedTransitioning new];
166+
// transitioning.presenting = NO;
167+
return transitioning;
168+
}
169+
164170
@end
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
//
2+
// FEPopupMenuControllerAnimatedTransitioning.h
3+
// FEPopupMenuControllerDemo
4+
//
5+
// Created by feeling on 16/5/16.
6+
// Copyright © 2016年 feeling. All rights reserved.
7+
//
8+
9+
#import <Foundation/Foundation.h>
10+
#import <UIKit/UIKit.h>
11+
12+
/**
13+
* custom transitioning animation
14+
*/
15+
@interface FEPopupMenuControllerAnimatedTransitioning : NSObject <UIViewControllerAnimatedTransitioning>
16+
17+
@end
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
//
2+
// FEPopupMenuControllerAnimatedTransitioning.m
3+
// FEPopupMenuControllerDemo
4+
//
5+
// Created by feeling on 16/5/16.
6+
// Copyright © 2016年 feeling. All rights reserved.
7+
//
8+
9+
#import "FEPopupMenuControllerAnimatedTransitioning.h"
10+
11+
@implementation FEPopupMenuControllerAnimatedTransitioning
12+
13+
- (NSTimeInterval)transitionDuration:(id <UIViewControllerContextTransitioning>)transitionContext{
14+
return 0.25;
15+
}
16+
17+
-(void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext{
18+
}
19+
20+
@end

FEPopupMenuControllerDemo/FEPopupMenuControllerDemo.xcodeproj/project.pbxproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
objects = {
88

99
/* Begin PBXBuildFile section */
10+
0B62DA0E1CE9727300EE684E /* FEPopupMenuControllerAnimatedTransitioning.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B62DA0D1CE9727300EE684E /* FEPopupMenuControllerAnimatedTransitioning.m */; };
1011
0B690B9C1C5B68A200A06C36 /* FEPopupMenuItemCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B690B9A1C5B68A200A06C36 /* FEPopupMenuItemCell.m */; };
1112
0B690B9D1C5B68A200A06C36 /* FEPopupMenuItemCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0B690B9B1C5B68A200A06C36 /* FEPopupMenuItemCell.xib */; };
1213
0BBE730F1C5B483700DEF2EE /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BBE730E1C5B483700DEF2EE /* main.m */; };
@@ -20,6 +21,8 @@
2021
/* End PBXBuildFile section */
2122

2223
/* Begin PBXFileReference section */
24+
0B62DA0C1CE9727300EE684E /* FEPopupMenuControllerAnimatedTransitioning.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FEPopupMenuControllerAnimatedTransitioning.h; sourceTree = "<group>"; };
25+
0B62DA0D1CE9727300EE684E /* FEPopupMenuControllerAnimatedTransitioning.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FEPopupMenuControllerAnimatedTransitioning.m; sourceTree = "<group>"; };
2326
0B690B991C5B68A200A06C36 /* FEPopupMenuItemCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FEPopupMenuItemCell.h; sourceTree = "<group>"; };
2427
0B690B9A1C5B68A200A06C36 /* FEPopupMenuItemCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FEPopupMenuItemCell.m; sourceTree = "<group>"; };
2528
0B690B9B1C5B68A200A06C36 /* FEPopupMenuItemCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FEPopupMenuItemCell.xib; sourceTree = "<group>"; };
@@ -101,6 +104,8 @@
101104
0B690B991C5B68A200A06C36 /* FEPopupMenuItemCell.h */,
102105
0B690B9A1C5B68A200A06C36 /* FEPopupMenuItemCell.m */,
103106
0B690B9B1C5B68A200A06C36 /* FEPopupMenuItemCell.xib */,
107+
0B62DA0C1CE9727300EE684E /* FEPopupMenuControllerAnimatedTransitioning.h */,
108+
0B62DA0D1CE9727300EE684E /* FEPopupMenuControllerAnimatedTransitioning.m */,
104109
);
105110
name = FEPopupMenuController;
106111
path = ../FEPopupMenuController;
@@ -178,6 +183,7 @@
178183
buildActionMask = 2147483647;
179184
files = (
180185
0BBE733F1C5B4F5A00DEF2EE /* FEPopupMenuItem.m in Sources */,
186+
0B62DA0E1CE9727300EE684E /* FEPopupMenuControllerAnimatedTransitioning.m in Sources */,
181187
0BBE73151C5B483700DEF2EE /* ViewController.m in Sources */,
182188
0BBE73121C5B483700DEF2EE /* AppDelegate.m in Sources */,
183189
0BBE733E1C5B4F5A00DEF2EE /* FEPopupMenuController.m in Sources */,

0 commit comments

Comments
 (0)