`
374016526
  • 浏览: 99259 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

交叉淡化、新视图移动到旧视图上,新视图推出就视图,旧视图移开显示新的

 
阅读更多

    //

//  TestBedViewControler_004.m

//  UIViewAnimationsTest

//

//  Created by mir on 11-4-1.

//  Copyright 2011 __MyCompanyName__. All rights reserved.

//

 

#import "TestBedViewControler_004.h"

 

 

@implementation TestBedViewControler_004

 

/*

 // The designated initializer.  Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {

    if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {

        // Custom initialization

    }

    return self;

}

*/

 

/*

// Implement loadView to create a view hierarchy programmatically, without using a nib.

- (void)loadView {

}

*/

 

-(void) animate:(id)sender{

//Set up the animation

CATransition *animation=[CATransition animation];

animation.delegate=self;

animation.duration=1.0f;

animation.timingFunction=UIViewAnimationCurveEaseInOut;

switch ([(UISegmentedControl*)self.navigationItem.titleView selectedSegmentIndex]) {

case 0://交叉淡化过渡

animation.type=kCATransitionFade;

break;

case 1://新视图移动到旧视图上面,好像盖在上面

animation.type=kCATransitionMoveIn;

break;

case 2://新视图将旧视图推出去

animation.type=kCATransitionPush;

break;

case 3://将旧视图移开显示出下面的新视图

animation.type=kCATransitionReveal;

break;

default:

break;

}

if (isLeft) {

animation.subtype=kCATransitionFromRight;

}else {

animation.subtype=kCATransitionFromLeft;

}

//Perform the animation

NSInteger purple=[[self.view subviews] indexOfObject:[self.view viewWithTag:99]];

NSInteger white=[[self.view subviews] indexOfObject:[self.view viewWithTag:100]];

[self.view exchangeSubviewAtIndex:purple withSubviewAtIndex:white];

//[self.view addSubview:[self.view viewWithTag:100]];

[[self.view layer] addAnimation:animation forKey:@"animation"];

//Allow or disallow user interaction (otherwise you can touch "through" the cover view to enable/disable the switch)

if (purple<white) {

[self.view viewWithTag:99].userInteractionEnabled=YES;

}else {

[self.view viewWithTag:99].userInteractionEnabled=NO;

}

isLeft=!isLeft;

 

 

}

 

 

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.

- (void)viewDidLoad {

    [super viewDidLoad];

self.navigationItem.rightBarButtonItem=BARBUTTON(@"Go",@selector(animate:));

UISegmentedControl *segmentedControl=[[UISegmentedControl alloc] initWithItems:[@"Fade Move Push Reveal" componentsSeparatedByString:@" "]];

segmentedControl.selectedSegmentIndex=0;

segmentedControl.segmentedControlStyle=UISegmentedControlStyleBar;

self.navigationItem.titleView=segmentedControl;

[segmentedControl release];

UIImageView *view1=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"1.png"]];

view1.tag=99;

UIImageView *view2=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"2.png"]];

view2.tag=100;

[self.view addSubview:view1];

[self.view addSubview:view2];

[view1 release];

[view2 release];

}

 

 

/*

// Override to allow orientations other than the default portrait orientation.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

    // Return YES for supported orientations

    return (interfaceOrientation == UIInterfaceOrientationPortrait);

}

*/

 

- (void)didReceiveMemoryWarning {

    // Releases the view if it doesn't have a superview.

    [super didReceiveMemoryWarning];

 

    // Release any cached data, images, etc that aren't in use.

}

 

- (void)viewDidUnload {

    [super viewDidUnload];

    // Release any retained subviews of the main view.

    // e.g. self.myOutlet = nil;

}

 

 

- (void)dealloc {

    [super dealloc];

}

 

 

@end


分享到:
评论

相关推荐

    ios常用动画封装类

    * @"reveal" 显露效果(将旧视图移开,显示下面的新视图) * @"fade" 交叉淡化过渡(不支持过渡方向) (默认为此效果) * @"pageCurl" 向上翻一页 * @"pageUnCurl" 向下翻一页 * @"suckEffect" 收缩效果,类似系统...

    AUTOCAD常用操作-淡化背景图形

    在AutoCAD设计中,有时我们需要将某些特定元素如传感器或线槽从复杂的布局图中突出显示,这时就需要利用"淡化背景图形"的功能。这个功能允许我们调整图形的可见度,以便于聚焦在关键细节上。以下是如何在AutoCAD中...

    (0123)-iOS/iPhone/iPAD/iPod源代码-文字视图(Text)-Fading TextView

    4. **处理滚动**:如果TextView支持滚动,那么在滚动事件发生时,需要重新计算和绘制渐变效果,以确保始终正确显示淡化的文本。 5. **性能优化**:为了提高性能,可能需要使用离屏渲染或者只在必要时更新渐变效果,...

    音乐淡化剪切

    通过友好的用户界面,音乐淡化剪切提供了直观的波形视图,允许用户通过鼠标拖拽,快速定位到音乐的精确位置。用户只需在波形上找到剪切的起始点和结束点,轻轻一点,便可完成剪切操作。对于需要精确到毫秒的音乐编辑...

    ios 各种页面跳转的动画(淡化,翻页等)

    通过调整视图的`alpha`属性,可以实现从一个页面淡化到另一个页面的效果。例如,你可以将前一个页面的`alpha`值逐渐减小至0,同时新页面的`alpha`值从0逐渐增加至1。 3. **翻页(Page Curl Animation)** iOS系统...

    详解IOS图层转场动画

    4. `reveal`: 旧视图移开,展示下方的新视图,同样有方向选择。 5. `cube`: 立方体翻滚效果,适用于3D转换。 6. `oglFlip`: 上下或左右翻转效果。 7. `suckEffect`: 收缩效果,像布料被抽走。 8. `rippleEffect`: ...

    ScrollviewDemo 组件测试

    在Android开发中,ScrollView是一个非常重要的布局组件,它允许用户在一个垂直方向上滚动视图,以便展示超过屏幕大小的内容。ScrollviewDemo就是针对这个组件进行的一系列测试和示例,旨在帮助开发者理解和掌握如何...

    适配页面的demo

    "5"在这里可能指的是iPhone 5系列的屏幕尺寸,因为苹果公司在推出iPhone 6和6 Plus后逐渐淡化了对具体设备尺寸的依赖,转而强调通用的适配策略。 适配过程主要包括以下几个方面: 1. **约束(Constraints)**:在...

    Android转场动画及修订ToolBar左边间距

    在描述中提到的场景,涉及到两个界面间的平移和淡化效果,这可以通过使用共享元素转场(Shared Element Transition)来实现。共享元素转场允许一个界面的特定视图在另一个界面中保持其身份,同时伴随着平移和透明度...

    ScrollView

    1. 内容无法滚动:确保ScrollView只有一个直接子视图,并且内容足够多以至于不能一次性显示在屏幕上。另外,检查其他布局是否设置了过高的高度,导致ScrollView无法正确识别内容。 2. 滚动冲突:当ScrollView嵌套在...

    Photoshop快捷键大全.pdf

    - **Ctrl + Alt + X**: 切除选区外的部分,保留选区内内容并将其置于新的图层上。 - **Ctrl + Alt + Z**: 后退一步,撤销最近的操作。 - **Ctrl + Alt + 鼠标拖动选区**: 复制选区,创建一个新的副本图层。 #### 三...

    cubase快捷键[参照].doc

    使用上下左右方向键,可以在Project窗口中移动音频波形或MIDI事件,如向上键使事件上移,向下键使其下移,向左键和向右键则控制事件在时间轴上的位置。 功能键的使用也相当关键。F1键打开系统帮助,F2键显示或隐藏...

    安卓欢迎页面淡入淡出

    实现这种淡入淡出效果主要涉及到安卓的动画框架,包括属性动画(Property Animation)和视图动画(View Animation)。属性动画系统是Android 3.0(API level 11)及更高版本引入的,它允许对对象的属性进行连续的...

    enhanced-package-list:向捆绑包添加图标并在设置视图中淡出禁用的包

    这个插件的主要功能是在设置视图中为用户界面添加图标,以及对禁用的包进行视觉上的淡化处理。这样,用户可以更清晰地识别和管理他们在编辑器中使用的各种包。 描述中提到的几个关键点进一步解释了插件的功能: 1....

    iPad Human Interface Guideline

    - **分屏视图**:支持同时显示两个或多个视图,增强多任务处理能力。 - **文本视图**:用于编辑和显示文本内容。 - **控件**:包括日期时间选择器、信息按钮、页面指示器、搜索栏、分割控件等。 - **动作表单、警告...

    支持视图切换时淡入出的切换效果特效

    源码功能实现支持视图切换时淡入出的切换效果特效,当切换视图效果是,背景也会随着切换而变化,而且文字也会跟着切换内容等,都是以淡化的效果切换的,喜欢的朋友可以下载学习看看,该源码天堂IOS源码频道免费提供...

    抽屉侧滑效果

    抽屉侧滑效果在移动应用开发中是一种常见的交互设计,尤其在导航菜单或者侧边栏功能展示时使用广泛。这种效果通常是指从屏幕边缘滑出一个面板,类似于打开一个抽屉,用户可以在这个面板上看到更多的操作选项或者信息...

    opengl简单的阴影贴图

    阴影贴图(Shadow Map)是OpenGL中实现软阴影的一种常见方法,它通过从光源视角渲染场景到一个纹理,然后在主视图中使用这个纹理来判断物体是否被遮挡,从而产生阴影效果。 首先,我们要理解OpenGL的基础。OpenGL是...

    基础知识及问答冲压工艺PPT课件.pptx

    草图模块中,草图平面外的元素可以被淡化显示,便于专注于当前草图,而草图分析器则简化了对草图内相同元素的编辑操作。 总之,这份PPT课件全面地介绍了CATIA在冲压工艺中的应用,从基本操作到高级技巧,为学习者...

    文本写作软件 Scrivener 1.9.16.0 中文多语免费版.zip.zip

    9. **版本控制**:内置版本历史记录功能,可以轻松回溯到之前的草稿,避免误删或想恢复旧内容的情况。 10. **学习中心**:Scrivener附带详细的教程和帮助文档,帮助新用户快速上手,充分利用软件的各项功能。 总的...

Global site tag (gtag.js) - Google Analytics