`
icrwen
  • 浏览: 268552 次
  • 性别: Icon_minigender_2
  • 来自: 济南
社区版块
存档分类
最新评论

iphone下的多视图 --xcode3.1实现

 
阅读更多

苹果电脑os是Mac os 而ipone操作系统是ios,都是基于unix内核开发的独立的操作系统。

 xcode3.1下windows 框架,必须有一个root view来控制下面所有子view的切换

UIApplication接收到所有的系统事件和生命周期事件时,都会把事件传递给UIApplicationDelegate进行处理,对于用户输入事件,则传递给相应的目标对象去处理。

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

UIView提供了很多建立和管理视图的方法。

1、添加视图

     insertSubview:atIndex:   //放在子视图数组的具体索引位置

     insertSubview:aboveSubview:   //某个子视图前面

     insertSubview:aboveSubview:   //某个子视图前面

2、重新排序和删除子视图

      [parentView exchangeSubviewAtIndex:i withSubviewAtIndex:j]//交换两个视图的位置

      bringSubviewToFront:和sendSubviewToBack://将子视图提前活置后

      [childView removeSuperview]//删除某个视图的子视图

3、视图回调

   某个视图的层次一改变,该视图就会收到一次回调。

   a、调用addSubivew:成功后会给该视图发送didAddSubivew:回调,触发UIView的子类在心增视图时执行其他操作。

   b、didMoveToSuperview:会通知相关视图他们的上级视图已经变化。

   c、视图移动前会发出willMoveToSuperview:回调

   d、didMoveToWindow:回调和didMoveToSuperview:相似,从命名上能看出其区别。

   e、willMoveToWindow:在视图移动前发出的回调。

    f、willRemoveToSubview:回调通知父视图子视图即将被删除

 

UIView掌管直接屏幕绘图。他的drawRect:方法提供一种低级方式来直接绘制内容,允许使用Quartz 2D调用创建和显示任意元素,可将这两个元素结合起来共同构建具体、可操作的界面。

当用户触摸屏幕时,Touchview类收集一系列点,在每个触摸移动之处,touchesMoved:WithEvent:方法调用setNeedsDisplay。这又会触发对drawRect:方法的调用,其中视图将这些点绘制成线段来创建一个可视屏幕路径。

/////////////////////////////////////////////////////////////////////////////////////////////////

先创建一个windows应用程序

1 ) 添加rootviewController类、mainview,editview类都是viewcontroller的派生类。

2)修改程序委托 XXXdelegate.h,先把启动画面从window,改为给window添加的子视图---根视图对象

 #import <UIKit/UIKit.h>    

 @class RootViewControler;

@interface XXXAppdelegate:NSObject<UIApplicationDegate>{

UIWindow * window;

        RootViewController * rootview;

}

@property (nonatomic, retain) IBoutlet UIWindow * window;

@property (nonatomic,retain) IBoutlet   RootViewController * rootview;

@end;

 

在委托的实现文件XXXAppdelegate.m添加

 - (void) appliccationDidFinishLaunching:(UIApplication*)application{

[window addSubView:rootview.view];

       [window makeKeyAndVisible];

 

}

 - (void)dealloc

{

[window release];

        [rootview release];

        [super dealloc];

}

3.在IB下添加实例对象

      打开mainwindow.xib然后拖拉一个UIViewController到上面生成一个图标,并且在苹果+4打开的identity修改UIViewController类为RootViewController类则表示生成了一个根控制器的实例对象,然后再通过应用程序委托的输出口连接到该实例对象。按住control键并拖拉应用程序委托对象拖到刚生成的视图对象,然后再选择rootview输出口。

4)在IB下,在UIVewController窗口里添加一个view对象。然后才能拖放控件。

5)  视图的层次关系是RootViewController下有2个子视图MainViewController,EditViewController,子视图之间可以互相切换。

6)RootViewControlle下添加2个子视图

    #import<UIKit/UIKit.h>

   @class MainVewController;

   @class EditViewController;

   @interface RootViewController:UIViewController

   {

       MainViewController * _rootView;

       EditViewController  * _editView;

   }

  @property (nonatomic, retain) RootViewController * _rootView;

   @property(nonatomic, retain) EditViewController * _editView;

@end

 

   #import "RootViewController.h"

   #import "MainViewController.h"

   #import "EditViewController.h"

   @implements RootViewController;   

   @synthesize  _mainView,_editView;

 

   -(void)viewDidLoad{

      if(self._editView == nil)

    {

  EditViewController * editViewTemp = [[EditViewController alloc]initWithNibName:@"editview"                                                                            bundle:nil];

         self._editView = editViewTemp;

         [self.veiw insertSubView:self._editView.view atIndex:0];//记住edit索引为0

            //注意不要释放editViewTemp对象

     }

    if(self._mainView == nil)

    {

         MainViewController * mainViewTemp = [[MainViewController alloc]initWithNibName:@"mainview"                                                              bundle:nil];

           self._mainView = mainViewTemp;

          [self.view addSubView:self._mainView.view];//记住main索引为1

       //注意不要释放mainViewTemp对象

     }

 

}

 

}

7.)在mainview.xib下点击File's Owner图标点击苹果键+4打开Main view controller identify设置class为MainViewController,将MainViewController的view输出口连接到nib中的视图对象,按住Control键拖拉File's Owner图标到nib中的视图对象,然后选择view输出口。

8.)在mainview里添加一个button然后添加事件响应btnpressed

   -(IBAction)btnpressed:(id)sender

{

     [ self.view.superview exchangeSubviewAtIndex:1 withSubviewAtIndex:0];//

}

9)在EditView里添加button响应事件

   -(IBAction)btnpressed:(id)sender

{

    [ self.view.superview exchangeSubviewAtIndex:0 withSubviewAtIndex:1];

}

 

 

 

 

 

 

分享到:
评论

相关推荐

    应用cocos2d引擎的iphone 游戏----坦克大战

    4.1 背景与地形:使用TileMap(瓷砖地图)创建复杂地形,支持滚动视图以实现大地图效果。 4.2 图像优化:对游戏资源进行压缩和预加载,提高游戏启动速度和运行效率。 4.3 性能监控:利用Cocos2d提供的Profiler工具...

    iPhone开发基础教程 源码

     3.1 模型-视图-控制器范型  3.2 创建项目  3.3 创建视图控制器  3.3.1 输出口  3.3.2 操作  3.3.3 将操作和输出口添加到视图控制器  3.3.4 将操作和输出口添加到实现文件  3.4 使用应用程序委托  ...

    iPhone开发基础教程-PDF完整版 part 1

    从给定的文件信息来看,我们主要关注的是“iPhone开发基础教程-PDF完整版 part 1”,这显然是针对想要入门或提升iOS应用开发技能的学习者准备的资源。下面,我们将深入探讨与iPhone应用开发相关的几个核心知识点,...

    iphone开发入门经典源码

    13.1 选项卡栏和选项卡栏控制器 13.2 创建多视图选项卡栏应用程序 13.2.1 实现概述 13.2.2 创建项目 13.2.3 添加选项卡栏控制器 13.2.4 配置视图控制器类 13.2.5 实现ArcaView视图 13.2.6 实现VolumcView视图 13.2.7...

    iPhone开发实战.pdf

    Auto Layout是一种响应式布局机制,允许开发者定义视图之间的约束关系,从而实现不同屏幕尺寸下的自适应布局。这在面对多样化的iPhone屏幕尺寸时尤为有用。 #### 2.3 Core Data Core Data是iOS提供的一种对象持久化...

    iPhone开发基础教程PDF(含源代码)

     第6章 多视图应用程序  第7章 标签栏与选取器  第8章 表视图简介  第9章 导航控制器和表视图  第10章 应用程序设置和用户默认设置  第11章 基本数据持久性  第12章 使用Quartz和OpenGL绘图  第13章 轻击、...

    iPhone开发指南(中文版)

    通过本指南的学习,开发者不仅可以掌握iPhone应用程序开发的基础知识,还能深入理解各个关键技术点,从而更好地设计和实现高质量的应用程序。无论是新手还是经验丰富的开发者,都能从中受益匪浅。此外,《iPhone开发...

    iphon开发秘笈

    **3.1 视图管理** - **核心类**:UIViewController是所有视图控制器的基类,提供了视图管理和交互的基本功能。 - **专用类**:针对特定类型的视图,如UINavigationController用于导航界面。 **3.2 使用Interface ...

    IOS编程指南

    - **层次结构**:视图之间形成层级关系,每个视图都有一个父视图(superview),并且可以拥有零个或多个子视图(subviews)。 - **示例**: - **顶层视图**:`UIWindow`,它是所有其他视图的容器。 - **普通视图**:如...

    The_iOS_Apprentice_1_Getting_Started_v3.1

    《iOS Apprentice 1 Getting Started v3.1》是iOS Apprentice系列教程的第三版,专为初学者设计,旨在引导读者入门iOS开发,包括iPhone和iPad应用程序的创建。这个史诗级的教程结合了理论与实践,提供了丰富的源码,...

    iPhone应用开发从入门到精通

    **3.1 实现一个简单的天气应用** - **需求分析**:确定应用的基本功能,如获取用户当前位置、查询天气预报、显示温度等信息。 - **技术选型**:选择合适的API接口获取天气数据,使用URLSession进行网络请求。 - **...

    iPhone开发秘籍(第2版) 高清带书签 下载地址

    **3.1 iPhone 3.0 SDK新增特性** 本书对iPhone 3.0 SDK中的所有新增特性进行了详细介绍,包括多任务处理、推送通知、剪贴板支持等。这些特性极大地扩展了应用的功能性和实用性。 **3.2 实战案例分析** 为了帮助...

    iphone3开发基础教程

    4.3.2 实现图像视图和文本字段 43 4.3.3 添加图像视图 44 4.3.4 添加文本字段 47 4.3.5 设置第二个文本字段的属性 50 4.3.6 连接输出口 50 4.4 构建和运行 51 4.4.1 完成输入后关闭键盘 51 4.4.2 通过触摸背景关闭...

Global site tag (gtag.js) - Google Analytics