• Stars
    star
    103
  • Rank 333,046 (Top 7 %)
  • Language
    Objective-C
  • Created over 9 years ago
  • Updated about 9 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

一个3D翻转的转场动画

KYPushTransition

一个3D翻转的转场动画,可以手势百分比控制。

###Usage

以下代码全在第一个视图控制器中实现:

进入第一个控制器。在跳转之前,设置后一个控制器的代理,比如我用Segue的话,就在-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender里设置后一个控制器的代理为前一个控制器,并且让后一个控制器实现手势返回的交互:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    
    SecondViewController *secVC = (SecondViewController *)segue.destinationViewController;
    secVC.transitioningDelegate = self;
    popInteractive = [KYPopInteractiveTransition new];
    [popInteractive addPopGesture:secVC];
}

然后分两种情况:

###1)如果只是一个VC present 到另一个 VC,那么你需要实现UIViewControllerTransitioningDelegate中的两个协议,分别对应presentdismiss,返回对应的动画:

- (id <UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source{
    
    KYPushTransition *flip = [KYPushTransition new];

    return flip;
}

- (id <UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController:(UIViewController *)dismissed{
    KYPopTransition *flip = [KYPopTransition new];
    return flip;
    
}

然后是手势交互的方法,比较常用的情况是返回上一个VC采用手势,所以这里只实现了dismiss的方法:

- (id <UIViewControllerInteractiveTransitioning>)interactionControllerForDismissal:(id <UIViewControllerAnimatedTransitioning>)animator{
    return popInteractive.interacting ? popInteractive : nil;
    
}

###2)如果你是用UINavigationController控制两个VC,那么需要实现UINavigationControllerDelegate中的:

- (id <UIViewControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationController
                                   animationControllerForOperation:(UINavigationControllerOperation)operation
                                                fromViewController:(UIViewController *)fromVC
                                                  toViewController:(UIViewController *)toVC{
    if (operation == UINavigationControllerOperationPush) {
        
        KYPushTransition *flip = [KYPushTransition new];
        return flip;
        
    }else if (operation == UINavigationControllerOperationPop){
        
        KYPopTransition *flip = [KYPopTransition new];
        return flip;
        
    }else{
        return nil;
    }
}

UINaviagtionController控制VC的情况下,UINavigationControllerDelegate也有相应的手势交互的协议方法:

- (id <UIViewControllerInteractiveTransitioning>)navigationController:(UINavigationController *)navigationController
                          interactionControllerForAnimationController:(id <UIViewControllerAnimatedTransitioning>) animationController{
        return popInteractive.interacting ? popInteractive : nil;

点击博客介绍阅读详细实现细节

More Repositories

1

KYGooeyMenu

A not bad gooey effects menu.
Objective-C
1,921
star
2

A-GUIDE-TO-iOS-ANIMATION

The source code of my new eBook —— A GUIDE TO IOS ANIMATION. Just click the next link to buy it
Objective-C
1,453
star
3

KYAnimatedPageControl

A custom UIPageControl with multiple animations
Objective-C
1,317
star
4

KYCuteView

Drag like a gooey bubble.
Objective-C
979
star
5

GooeyTabbar

A gooey effect tabbar
Swift
937
star
6

Animations

some test animations, just for fun.
Objective-C
629
star
7

KYJellyPullToRefresh

A shape changing & physical ball pull-to-refresh.
Objective-C
559
star
8

KYWaterWaveView

实现波浪正弦动画并带有小鱼跳跃溅起水花。A view with water wave animation inside.
Objective-C
515
star
9

KYElegantPhotoGallery

An elegant photo gallery. It will zoom from a thumb image and you can pan to dismiss it with cool animation.
Objective-C
423
star
10

DynamicMaskSegmentSwitch

A segment switcher with dynamic text mask effect
Swift
309
star
11

Longinus

A pure Swift high-performance asynchronous image loading framework. SwiftUI supported.
Swift
302
star
12

KYTilePhotoLayout

A UICollectionViewLayout with a really interesting image layout algorithm.
Objective-C
228
star
13

KYPingTransition

实现圆圈放大放小的转场动画
Objective-C
205
star
14

KYMagicMove

在iOS中实现Keynote中神奇移动的过渡效果
Objective-C
194
star
15

KYBezierBounceView

实现手势控制贝塞尔曲线的左右菜单并带有重力反弹效果
Objective-C
136
star
16

KYAsyncLoadBubble

A bubble which can async-load web content without interrupt your current process.
Objective-C
113
star
17

KYShareMenu

带弹性动画的分享菜单
Objective-C
86
star
18

KYFloatingBubble

类似iOS7中Game Center浮动气泡的效果。iOS7 Game Center Floating Bubble Effects.
Swift
82
star
19

KYParallaxView

一个使用简单同时又能高度自定义的视差滚动框架
Objective-C
73
star
20

ChatGPT-Mac-MenuBar

Chat with OpenAI's ChatGPT in mac menu bar like a pro.
Swift
72
star
21

KYJellyAnimation

实现类似Skype iOS App中果冻弹簧效果
Objective-C
58
star
22

KYVoiceCurve

类似Apple Watch中语音的声音曲线动画。The animating voice curve like Apple Watch
Objective-C
57
star
23

KYWeibo

调用新浪API自己写的第三方微博客户端
Objective-C
45
star
24

KYSelfSizingPushFixCategory

A UITableView Category for fixing the bug of 'Self-Sizing-Cell' when push to next ViewController the tableView position will change.
Ruby
30
star
25

KYCellAnimation

给UITableViewCell增加进入的动画
Objective-C
24
star
26

KYNewtonCradleAnimiation

牛顿摆动画
Objective-C
23
star
27

zigzag_wechat_bot

ZigZag 做市商微信机器人
TypeScript
19
star
28

KYPageControlTry

类似Smartisan OS首页的小圆点滚动效果
Objective-C
19
star
29

SpringPageView

使用POP
Objective-C
18
star
30

SafeSnap

An open-sourced Web3 iOS Application which combines Gnosis Safe and Snapshot together makes you easily manage your DAOs on your pocket.
Swift
17
star
31

PassbookCard

A card animation like Passbook.
Objective-C
15
star
32

SoundCloudWaveView

A controllable sound wave view like Sound Cloud.
Objective-C
15
star
33

KYTransition

A custom transition using UIViewControllerTransitioning
Objective-C
13
star
34

GooeyLoader

The implement of Scanner Gooey Effect: https://dribbble.com/shots/2156764-Scanner-Gooey-Effect-Firefly-Loader
Swift
12
star
35

DynamicBlurView

A high performance UIView-Class dynamic blur view like UITabbar or UINavagationBar, it can blur the view behind it.
Objective-C
12
star
36

WeiboEmotionView

The Weibo Emotion View you can use in replace of your keyboard.
Objective-C
11
star
37

FaceTrigger

An easy-to-use wrapper of ARKit Face Tracking API
Swift
9
star
38

RecordAppScreen

Record screen inside app.
Swift
9
star
39

SwiftQ-A

学习Swift过程中自己出的一些Q&A,方便巩固知识点。Swift learning Q&A.
Swift
8
star
40

KYDoubanFM

纯Swift第三方豆瓣FM客户端
Swift
7
star
41

FloatingVideoView

A floating video view test, seems like VVebo.
Objective-C
7
star
42

Performance-Optimization-PDF

The slices of Performance-Optimization presentation
6
star
43

CustomActivities

UIActivity extention for weibo/wechat/tencent
Objective-C
4
star
44

ElegantPhotoGallery

The swift version of KYElegantPhotoGallery.
4
star
45

charming-chatgpt

A raycast extension for charming-chatgpt
TypeScript
4
star
46

AnimatedPageControl

The swift version of KYAnimatedPageControl.
4
star
47

TapticEngineSample

A sample of how to use Taptic Engine API(UINotificationFeedbackGenerator/UIImpactFeedbackStyle/UIImpactFeedbackGenerator)
Swift
4
star
48

NewNextApp

My personal app.Still moving.
Makefile
3
star
49

KYDopePopup

A drop-in AlertViewController with dope animation.
Objective-C
3
star
50

AutoGPT.swift

AutoGPT with Swift
Swift
3
star
51

TenderCrashHandlerDemo

Tender crash solution.
Objective-C
3
star
52

KYVoiceCurve-Swift

KYVoiceCurve for Swift
Swift
2
star
53

KYMotionBlur

在iOS上实现一种特殊的视觉效果——运动模糊
2
star
54

KYNavigationTranstion

An easiest way of NavigationTransition.
1
star
55

SDThumbnailDecodingPeakMemoryTest

A demo to compare SD 5.x Thumbnail Decoding and SD 4.x Downsizing peak memory
Objective-C
1
star
56

kittenyang

1
star
57

QuickOpenCellular

Swift
1
star
58

NextApp

focus开发的一个完整的项目,不再继续,接力给NewNextApp继续开发。
Makefile
1
star
59

HowRegexWorks-Swift

用Swift学习正则表达式是如何工作的(笔记+源码)
Swift
1
star