push自定义动画
//
// ViewController.m
// ViewControllerAnimation
//
// Created by mac on 15/5/26.
// Copyright (c) 2015年 BSY. All rights reserved.
//
#import "ViewController.h"
#import "TwoViewController.h"
@interface
ViewController ()<
UINavigationControllerDelegate
,
UIViewControllerTransitioningDelegate
>
@property
(
nonatomic
,strong)TwoViewController*two;
@property
(
nonatomic
,strong)
UIViewController
*currentViewController;;
@end
@implementation
ViewController
- (
void
)viewDidLoad {
[
super
viewDidLoad];
self
.title = @
"第一页"
;
self
.view.backgroundColor = [
UIColor
grayColor];
self
.Animator = [[BSYAnimator alloc]init];
self
.TransitionAnimator = [[BSYTransitionAnimator alloc]init];
UIButton
*button = [
UIButton
buttonWithType:
UIButtonTypeCustom
];
[button setFrame:CGRectMake(100, 100, 100, 100)];
[button setTitle:@
"Push"
forState:
UIControlStateNormal
];
[button setTitleColor:[
UIColor
blackColor] forState:
UIControlStateNormal
];
[
self
.view addSubview:button];
[button addTarget:
self
action:
@selector
(buttonClick) forControlEvents:
UIControlEventTouchUpInside
];
TwoViewController *two = [[TwoViewController alloc]init];
self
.two = two;
self
.navigationController.delegate =
self
;
two.transitioningDelegate =
self
;
two.modalPresentationStyle =
UIModalPresentationCustom
;
[
self
addChildViewController:two];
self
.currentViewController = two;
}
-(
void
)buttonClick
{
[
self
.navigationController pushViewController:
self
.two animated:
YES
];
}
#pragma mark - UINavigationControllerDelegate iOS7新增的2个方法
// 动画特效
- (
id
<
UIViewControllerAnimatedTransitioning
>) navigationController:(
UINavigationController
*)navigationController animationControllerForOperation:(
UINavigationControllerOperation
)operation fromViewController:(
UIViewController
*)fromVC toViewController:(
UIViewController
*)toVC
{
if
(operation ==
UINavigationControllerOperationPush
) {
return
self
.Animator;
}
else
{
return
nil
;
}
}
#pragma mark - Transitioning Delegate (Modal)
-(
id
<
UIViewControllerAnimatedTransitioning
>)animationControllerForPresentedController:(
UIViewController
*)presented presentingController:(
UIViewController
*)presenting sourceController:(
UIViewController
*)source
{
self
.TransitionAnimator.animationType = AnimationTypePresent;
return
self
.TransitionAnimator;
}
-(
id
<
UIViewControllerAnimatedTransitioning
>)animationControllerForDismissedController:(
UIViewController
*)dismissed
{
self
.TransitionAnimator.animationType = AnimationTypeDismiss;
return
self
.TransitionAnimator;
}
@end
push自定义动画的更多相关文章
- iOS 8自定义动画转场上手指南
原文:http://www.cocoachina.com/ios/20150126/11011.html iOS 5发布的时候,苹果针对应用程序界面的设计,提出了一种全新的,革命性的方法—Storyb ...
- android 自定义动画
android自定义动画注意是继承Animation,重写里面的initialize和applyTransformation,在initialize方法做一些初始化的工作,在applyTransfor ...
- Android开发学习之路-RecyclerView的Item自定义动画及DefaultItemAnimator源码分析
这是关于RecyclerView的第二篇,说的是如何自定义Item动画,但是请注意,本文不包含动画的具体实现方法,只是告诉大家如何去自定义动画,如何去参考源代码. 我们知道,RecyclerView默 ...
- 深入学习jQuery自定义动画
× 目录 [1]属性对象 [2]可选参数 [3]选项参数 前面的话 很多情况下,前面介绍的jQuery动画的简单效果无法满足用户的各种需求,那么就需要对动画有更多的限制,需要采取一些高级的自定义动画来 ...
- 自定义动画css属性
自定义动画: 1.animation-name(自定义动画名称) 元素所应用的动画名称,必须与@keyframes使用,名称由@keyframes定义. keyframes(动画关键帧):以@keyf ...
- [UE4]CustomAnimationBlueprintNode 自定义动画蓝图节点
目的:在AnimationBlueprint中使用自定义动画控制节点. 主要过程: 1. 引用相关模块.在Client.Build.cs文件中,PublicDependencyModuleN ...
- CSS3初学篇章_6(自定义动画)
自定义动画 由于有一部分低版本的浏览器并不支持的问题,所以这个样式要多做兼容,各大浏览器兼容前缀如下: 前缀 浏览器 -webkit chrome和safari -moz firefox - ...
- Popwindow自定义动画(nexus5不支持暂未解决)
遇到一个问题,先记录一下 PopWindow自定义动画 import android.app.Activity; import android.graphics.drawable.BitmapDraw ...
- Android开发UI之自定义动画
自定义动画,需要新建一个类,继承Animation类. 重写applyTransformation()方法和initialize()方法. applyTransformation(float inte ...
随机推荐
- YangTools从YANG生成Java类(Maven)
1.说明 ODL提供了Yang Tools工具从YANG文件生成Java类, 本文介绍使用Maven插件的方式生成, 基于yang-maven-plugin这个插件. 2.创建Maven工程 Ecli ...
- mysql在Linux下大小写敏感设置
默认情况下,mysql在windows下是不区分大小写的,但是mysql在linux下大小写规则是这样的: 1.数据库名与表名是严格区分大小写的: 2.表的别名是严格区分大小写的: 3.列名与列的别名 ...
- Linux的六种查找命令
http://www.ruanyifeng.com/blog/2009/10/5_ways_to_search_for_files_using_the_terminal.html 1. find fi ...
- Gitlab如何进行备份恢复与迁移?
https://blog.csdn.net/ouyang_peng/article/details/77070977 1.Gitlab 创建备份 1.1 创建备份文件 首先我们得把老服务器上的Gitl ...
- 关于Mysql的Qcache优化
query_cache_size = 64M 指定MySQL查询缓冲区的大小.可以通过在MySQL控制台执行以下命令观察:# > SHOW VARIABLES LIKE '%query_cach ...
- vue js格式化数字为金额格式
/** * @description 格式化金额 * @param number:要格式化的数字 * @param decimals:保留几位小数 默认0位 * @param decPoint:小数点 ...
- lvgl移植—Linux fbdev&evdev(基于LVGL v7)
虽然lvgl官方提供了有关linux framebuffer操作的库函数,但是我决定自己试一下能否自己实现这部分操作 实际项目中应优先采用官方库函数,官方实现代码位于文件夹lv_drivers/dis ...
- 在字节,A/B 实验是这么做的!
主要为大家介绍了为什么要做 A/B 测试.火山引擎的 A/B 测试系统架构及字节跳动内部 A/B 测试的最佳实践. 为什么要做 A/B 测试 首先我们看一个案例. 字节跳动有一款中视频产品叫西瓜视频, ...
- 《剑指offer》面试题37. 序列化二叉树
问题描述 请实现两个函数,分别用来序列化和反序列化二叉树. 示例: 你可以将以下二叉树: 1 / \ 2 3 / \ 4 5 序列化为 "[1,2,3,null,null,4,5]&quo ...
- JQ的使用
1.hello,word <script type="text/javascript" src="js/jquery-1.10.1.js">< ...