`

view制作及切换

 
阅读更多

目的

学习view制作及切换的几种方式

 

环境

Mac OS X 10.7.2

Xcode4.2

 

详解

在storyboard中创建另一个ViewController并使用Segue切换

在storyboard中再增加一个ViewController。在两个ViewController中各增加一个按钮。右击按钮,在弹出菜单中拖放“Modal”圈圈到另一个ViewController上放手即可。

 

在xib文件中创建另一个ViewController并使用代码手动切换

在工程中添加文件,选择创建“UIViewController subclass”,在向导中勾选“With XIB for user interface”,取名为“SecondViewController”,完成后得到3个文件:"SecondViewController.h"、"SecondViewController.m“、"SecondViewController.xib”。

在xib中添加一个按钮,并为其添加事件处理函数,在函数中增加如下代码以用于退出当前的view回到首页:

 

- (IBAction)exitCurrentView:(id)sender { 

    [self.view removeFromSuperview]; 

在首页的ViewController.h中添加此xib对应的变量,如下所示:

 

@interface ViewController : UIViewController 

    SecondViewController* secondViewController; 

 

背后的切换按钮事件函数代码为:

 

- (IBAction)switchToSecondView:(id)sender { 

    secondViewController=[[SecondViewController new] 

                          initWithNibName:@"SecondViewController" 

                          bundle:nil]; 

    [self.view addSubview:secondViewController.view]; 

 

 

在代码中手动创建View并使用代码手动切换

 

- (IBAction)switchToThirdView:(id)sender { 

    //先创建view 

    thirdView=[[UIView alloc] 

               initWithFrame:self.view.bounds]; 

    thirdView.backgroundColor=[UIColor greenColor]; 

 

    //为view增加控件 

    UIButton* button=[UIButton buttonWithType:UIButtonTypeRoundedRect]; 

    button.frame=CGRectMake(100, 100, 100, 100); 

    [button setTitle:@"回首页" 

            forState:UIControlStateNormal]; 

    [button addTarget:self 

               action:@selector(exitThirdView:) 

     forControlEvents:UIControlEventTouchUpInside]; 

    [thirdView addSubview:button]; 

 

    //将view显示出来 

    //加入动画吧 

    [UIView beginAnimations:@"flipping view" 

                    context:nil]; 

    [UIView setAnimationDuration:1]; 

    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft 

                           forView:self.view 

                             cache:NO]; 

    [self.view addSubview:thirdView]; 

    [UIView commitAnimations]; 

 

- (void)exitThirdView:(id)sender 

    //也加入动画效果 

    [UIView beginAnimations:@"flipping view" 

                    context:nil]; 

    [UIView setAnimationDuration:1]; 

    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight 

                           forView:self.view 

                             cache:NO]; 

    [thirdView removeFromSuperview]; 

    [UIView commitAnimations]; 

分享到:
评论
1 楼 w11h22j33 2012-02-06  
在viewDidAppear方法中做了一段页面开始的动画,但是动画效果在横屏是没有问题的,在竖屏轨迹总是不对。

解决
方法执行顺序的问题,页面的加载顺序是

2011-11-04 13:48:21.290 jjj[4048:707] viewDidAppear
2011-11-04 13:48:21.291 jjj[4048:707] layoutSubveiws
2011-11-04 13:48:21.293 jjj[4048:707] viewDidLayoutSubviews
2011-11-04 13:48:21.294 jjj[4048:707] showIntoAnimation

动画一定要在View的layoutSubviews处理完了之后再做,否则会出问题,这样动画就只能
放在viewDidLayoutSubviews方法中了

相关推荐

    笨鸟学iOS开发(3)view制作及切换源代码

    "笨鸟学iOS开发(3)view制作及切换源代码"的主题聚焦于如何创建和切换不同的视图,这是iOS应用开发中不可或缺的一部分。下面我们将深入探讨这一主题,讲解相关的知识点。 首先,我们来看`UIView`类。它是所有视图...

    在多个固定摄像机视角间切换UE5切换多个摄像机,显示不同摄像机所看内容

    6. **循环切换**: 在"Button Pressed"事件后,通过循环遍历摄像机数组并调用"Set View Target With Blend",每次按下按钮就切换到下一个摄像机。确保处理边界条件,防止超出数组范围。 7. **集成到游戏界面**: 最后...

    swift-自动切换图片的View效果

    在Swift编程中,实现自动切换图片的View效果是一种常见的需求,尤其在制作动态壁纸、轮播图或动画展示等场景中。本节将深入探讨如何使用Swift来创建一个能够自动切换图片的视图组件,同时结合`noppefoxwolf-...

    Unity-UGUI制作的小地图-可放大缩小视角,大地图小地图切换

    本项目“Unity-UGUI制作的小地图-可放大缩小视角,大地图小地图切换”旨在教大家如何利用UGUI组件来构建一个功能齐全的小地图系统,该系统能够支持相机视角的缩放以及在大地图和小地图之间进行切换,为玩家提供更...

    tabbarcontroller界面切换动画Demo

    本示例"tabbarcontroller界面切换动画Demo"主要关注的是在切换这些页面时添加自定义动画,同时保持TabBar本身静止不变。 一、TabBarController的基本概念与使用 TabBarController是UIViewController的一个子类,它...

    C# 实现多界面之间切换(WPF)multiWindows.zip

    在本文中,我们将深入探讨如何在Windows Presentation Foundation (WPF) 中实现多界面之间的切换,这对于构建复杂的桌面应用程序至关重要。WPF是微软提供的一种用于构建桌面应用的UI框架,它提供了丰富的功能和强大...

    garland-view-android,:octocat:garlandview在多个内容列表之间无缝转换。由@ramotion制作.zip

    这种视图被称为“花环视图”(Garland View),因为它在切换时呈现出类似花瓣翻转的动态效果,为用户界面添加了视觉吸引力和互动性。 在Android应用开发中,通常会遇到需要展示多组数据列表的情况,如新闻、商品...

    QT实现软键盘效果,大小写切换,消除确认等

    本项目着重于利用QT来创建一个虚拟键盘,具备大小写切换和消除确认等功能,使用户体验更加便捷和流畅。 首先,我们需要了解QT中的QGraphicsView和QGraphicsScene组件,它们是构建自定义图形用户界面的基础。...

    微信小程序 swiper制作tab切换实现附

    微信小程序 swiper制作tab切换 实现效果图: swiper制作tab切换 index.html <view class=swiper-tab> <view class=swiper-tab-list xss=removed data-current=0 bindtap=swichNav>Seside1</view> <view class=...

    Qlikview学习资料1

    - 清除所有选择后,重新选择特定值(如“中国”),并通过上下箭头移动到列表中的前一个或后一个选择项,便于在多个选项之间切换。 #### 四、文本与数字搜索 **文本搜索**: - 输入文本模式,如“ch”,QlikView将...

    前端项目-jquery.inview.zip

    而`jquery.inview`插件则是对jQuery功能的一个扩展,它使得开发者能够更加便捷地监控页面上元素的可见状态,这对于实现诸如懒加载、滚动提示、焦点切换等效果特别有用。 这个插件的工作原理是通过计算元素相对于...

    Android中使用TabHost 与 Fragment 制作页面切换效果

    在Android应用开发中,实现页面切换效果是常见的需求,尤其是在创建多标签页的应用时。本篇将详细介绍如何利用TabHost和Fragment在Android中构建这种效果。TabHost是Android提供的一个组件,用于创建具有多个Tab标签...

    mui选项卡切换和下拉刷新加载数据列表代码.zip

    这是一款基于mui框架制作的选项卡切换和下拉刷新加载数据列表代码,手机移动端选项卡切换插件,触屏滑动下拉刷新代码。 js代码 [removed][removed] [removed][removed] [removed][removed] [removed] mui....

    安卓软件制作及JAVA讲解(经典)

    安卓软件制作及JAVA讲解(经典) 本资源摘要信息主要讲解了安卓软件制作及JAVA相关知识点,涵盖了MyEclipse的基本使用、菜单、工具栏、透视图、视图等内容。 一、MyEclipse概述 MyEclipse是一个基于Eclipse平台的...

    Unity UGUI制作的背包翻页效果(带缓动)

    Unity UGUI制作的背包翻页效果(带缓动)是一种在游戏UI设计中常见的功能,它使得用户在浏览大量物品时能流畅地切换页面。在这个过程中,Unity的UI系统(UGUI)扮演了核心角色,而DoTween插件则提供了缓动效果的支持...

    VMware View 5.1 快速部署手册

    - **漫游策略**:配置用户配置文件的漫游设置,实现无缝切换。 - **策略应用**:将策略应用到目标用户或用户组。 #### 十六、制作虚拟化软件包与使用 ThinApp 1. **ThinApp 安装**:安装 VMware ThinApp 4.7 版本。...

    Android仿美团菜单(点击可连续切换)

    - 使用MVVM(Model-View-ViewModel)设计模式可以更好地分离数据逻辑和视图逻辑,提高代码可读性和维护性。 6. **状态栏和导航栏处理**: - 可能需要修改状态栏的颜色和透明度以适应界面风格,可以使用`android:...

    tab view 標簽切換對象的編寫

    在IT行业中,Tab View是...综上所述,编写Tab View对象涉及了用户界面设计、事件处理、动画制作等多个方面,是一个综合性较强的任务。通过不断学习和实践,我们可以构建出既美观又实用的Tab View,提升用户的使用体验。

    微信小程序精品学习demo:娱票:tab切换(适用1123版.rar

    `<navigator>`用于页面间的跳转,`<view>`则用于布局和展示内容,而`<scroll-view>`可以在横向或纵向滚动时展示多个视图,非常适合制作Tab栏。 1. **页面结构设计**: - Tab切换通常需要一个顶部的TabBar,包含...

Global site tag (gtag.js) - Google Analytics