`
sgm881218
  • 浏览: 56860 次
社区版块
存档分类
最新评论

UIView 基本方法

    博客分类:
  • ios
阅读更多

UIView的一些基本方法理解:loadView、viewDidLoad、viewDidUnload、viewWillAppear,viewWillDisappear

 

init:方法

在init方法中实例化必要的对象

init方法中初始化ViewController本身

 

loadView:方法 只调用一次

这是当没有正在使用nib视图页面,子类将会创建自己的自定义视图层。绝不能直接调用。

如果手工维护view,必须重载重写该方法。

当view需要被展示而它却是nil时,viewController会调用该方法。

 

loadView和IB构建view

你在控制器中实现了loadView方法,那么你可能会在应用运行的某个时候被内存管理控制调用。 如果设备内存不足的时候, view 控制器会收到didReceiveMemoryWarning的消息。 默认的实现是检查当前控制器的view是否在使用。 如果它的view不在当前正在使用的view hierarchy里面,且你的控制器实现了loadView方法,那么这个view将被release, loadView方法将被再次调用来创建一个新的view。

 

viewDidLoad:方法  视图加载之后被调用

在视图加载后被调用:

如果是在代码中创建的视图加载器,他将会在loadView方法后被调用;

如果是从nib视图页面输出,他将会在视图设置好后后被调用。

重载重写该方法以进一步定制view

在iPhone OS 3.0及之后的版本中,还应该重载重写viewDidUnload来释放对view的任何索引

viewDidLoad后调用数据Model

 

 

viewDidUnload:方法

当系统内存吃紧的时候会调用该方法(注:viewController没有被dealloc)

内存吃紧时,在iPhone OS 3.0之前didReceiveMemoryWarning是释放无用内存的唯一方式,但是OS 3.0及以后viewDidUnload方法是更好的方式

在该方法中将所有IBOutlet(无论是property还是实例变量)置为nil(系统release view时已经将其release掉了)

在该方法中释放其他与view有关的对象、其他在运行时创建(但非系统必须)的对象、在viewDidLoad中被创建的对象、缓存数据等 release对象后,将对象置为nil(IBOutlet只需要将其置为nil,系统release view时已经将其release掉了)

一般认为viewDidUnload是viewDidLoad的镜像,因为当view被重新请求时,viewDidLoad还会重新被执行

viewDidUnload中被release的对象必须是很容易被重新创建的对象(比如在viewDidLoad或其他方法中创建的对象),不要release用户数据或其他很难被重新创建的对象

 

dealloc:方法

viewDidUnload和dealloc方法没有关联,dealloc还是继续做它该做的事情

 

viewWillAppear: 方法

Called when the view is about to made visible. Default does nothing

视图即将可见时调用。默认情况下不执行任何操作

 

viewDidAppear: 

Called when the view has been fully transitioned onto the screen. Default does nothing

视图已完全过渡到屏幕上时调用

 

viewWillDisappear:

Called when the view is dismissed, covered or otherwise hidden. Default does nothing

视图被驳回时调用,覆盖或以其他方式隐藏。默认情况下不执行任何操作

 

viewDidDisappear:

Called after the view was dismissed, covered or otherwise hidden. Default does nothing

视图被驳回后调用,覆盖或以其他方式隐藏。默认情况下不执行任何操作

 

 

UIView翻转效果实现,像翻书似的从上往下方翻。

新建一个view-based模板工程,在ViewController文件中添加下面的代码,即可实现翻转效果;

- (void)viewDidLoad {

     [super viewDidLoad];

//需要翻转的视图

UIView *parentView = [[UIView alloc] initWithFrame:CGRectMake(0, 150, 320, 200)];

parentView.backgroundColor = [UIColor yellowColor];

parentView.tag = 1000;

[self.view addSubview:parentView];

}

//需要在h头文件声明下面的动作响应函数

//在xib文件中添加一个button,其响应函数为下面的函数

//运行程序后,点击button就看到翻转效果

-(IBAction)ActionFanzhuan{

//获取当前画图的设备上下文

CGContextRef context = UIGraphicsGetCurrentContext();

//开始准备动画

[UIView beginAnimations:nil context:context];

//设置动画曲线,翻译不准,见苹果官方文档 

[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

//设置动画持续时间

[UIView setAnimationDuration:1.0];

//因为没给viewController类添加成员变量,所以用下面方法得到viewDidLoad添加的子视图

UIView *parentView = [self.view viewWithTag:1000];

//设置动画效果

[UIView setAnimationTransition: UIViewAnimationTransitionCurlDown forView:parentView cache:YES];  //从上向下

// [UIView setAnimationTransition: UIViewAnimationTransitionCurlUp forView:parentView cache:YES];   //从下向上

// [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft forView:parentView cache:YES];  //从左向右

// [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight forView:parentView cache:YES];//从右向左

//设置动画委托

[UIView setAnimationDelegate:self];

//当动画执行结束,执行animationFinished方法

[UIView setAnimationDidStopSelector:@selector(animationFinished:)];

//提交动画

[UIView commitAnimations];

}

//动画效果执行完毕

- (void) animationFinished: (id) sender{

NSLog(@"animationFinished !");

}

运行程序,点击按钮,就能看到动画效果了。

0
0
分享到:
评论

相关推荐

    CXOverlay:基本 UIView 覆盖(用于教程等)

    基本 UIView 覆盖(用于教程等)。 在所有其他子视图下插入自己并使用drawRect:用颜色覆盖画布,然后剪出一个 CGRect。 ✓ UIView 类别便利方法 self.view.overlay = [[CXOverlay alloc] init]; self.view....

    CXFocusView:突出显示视图集合的 UIView 覆盖(用于教程)

    基本 UIView 覆盖(用于教程等)。 将自身插入到所有其他子视图下并使用drawRect:用颜色覆盖画布,然后使用drawRect:切出视图框架的集合。 基于 。 通过在center选择器上执行 KVO 来观察子视图何时移动。 ✓ ...

    基于MATLAB+C语言的ios绘图涂鸦板设计.zip

    重写touchesBegan、touchesMoved、touchesEnded,作用是接收屏幕触摸的坐标,手指接触uiview后会依次执行这三个方法。 其中重写touchesBegan和重写touchesEnded只在开始和结束执行一次,而手指在移动的过程中,会多...

    KBFoldingView:KBFoldingView 是 UIView 上的一个易于使用的类别,可促进 iOS 上视图之间令人惊叹的折纸过渡

    折叠类别的工作原理是在“源”视图(或最初显示在屏幕上的视图)上调用类别方法,并将“目标”视图作为参数传递,该视图将在视图转换终止后呈现在屏幕上。 基本思想是这样的: UIView *srcView = ...; UIView *...

    iOS开发中CALayer使用的基本教程

    在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView。 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层,在创建UIView对象...

    iOS 基本动画、关键帧动画、利用缓动函数实现物理动画效果

    iOS基本动画/关键帧动画/利用缓动函数实现物理动画效果 先说下基本动画部分 基本动画部分比较简单, 但能实现的动画效果也很局限 ... UIView *showView = [[UIView alloc] initWithFrame:CGRectMake(0,

    iOS优雅的将CALayer旋转360度示例代码

    * 在iOS系统中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView。 * 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个层。 * 在...

    MVPopupView:一个用 Swift 编写的基本弹出视图

    特征MVPopupView类提供了一些可用于自定义弹出窗口的基本方法: setCloseButtonColor改变关闭按钮的颜色setPopupBackgroundColor改变弹出视图外的颜色(默认颜色略透明) setPopupCornerRadius更改弹出窗口的角半径...

    iOS 面试题

    assign就是基本赋值 copy是重新创建一个oc对象,计数器是1 retain是对计数器+1 4.请写出实现多线程操作涉及的类及 简单 示例; NSThread, NSOperation, Blocks/GCD, pthread都是多线程操作函数 常用 NSThread ...

    DDHCustomTransition:帮助器类,使基本的视图控制器转换更容易

    TransitionInfo协议TransitionInfoProtocol定义了两个必需方法和一个可选方法: // Return the views which shoud be animated in the transitionfunc viewsToAnimate () -> [UIView]// Return a copy of the view ...

    iOS App开发中用CGContextRef绘制基本图形的基本示例

    首先创建一个集成自UIView的,自定义CustomView类。 在CustomView.m中实现代码。 代码如下: #import 覆盖DranRect方法,在此方法中绘制图形。 CustomView写好之后,需要使用到视图控制器中。 使用方法: 代码如下

    iOS 开发之 – 关闭键盘 退出键盘 的5种方式

    当不再需要使用虚拟键盘时,只要点击虚拟键盘和编辑区域外的地方,就可以将键盘收起,下面程式码是在 UIView 中内建的触碰事件方法函式,您可以参考 Touch Panel / 触碰萤幕 / 压力感应器的基本使用方式一文,找到更...

    总结IOS关闭键盘/退出键盘的五种方式

    当不再需要使用虚拟键盘时,只要点击虚拟键盘和编辑区域外的地方,就可以将键盘收起,下面程式码是在 UIView 中内建的触碰事件方法函式,您可以参考 Touch Panel / 触碰萤幕 / 压力感应器的基本使用方式一文,找到更...

    iOS开发之UIScrollView详解

    介绍:UIScrollView用于在一个小范围里显示很大的...父类UIView方法 代码如下: // autoresizingMask – 现在基本弃用,改用autoLayout typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {  UIViewAutoresizingN

    iphone开发笔记

    退回输入键盘 2 CGRect 2 CGPoint & CGSize 3 设置透明度 3 设置背景色 3 ...UIView设置成圆角方法 43 iPhone里的frame和bounds区别 43 Objective-C内存管理 44 iphone更改键盘右下角按键的type 45

    OBJECTIVE-C编程之道 IOS设计模式解析电子书+源代码

    算法封装第18章 模板方法18.1 何为模板方法模式18.2 何时使用模板方法18.3 利用模板方法制作三明治18.4 保证模板方法正常工作18.5 向模板方法增加额外的步骤18.6 在Cocoa Touch框架中使用模板方法18.6.1 UIView类中...

    iOS 9开发指南 [管蕾 编著] 2015年版(2-2)

    全书共39章,循序渐进地讲解了iOS 9应用开发的基本知识。本书从搭建开发环境讲起,依次讲解了Objective-C语言基础,Swift语言基础,Cocoa Touch,Xcode Interface Builder界面开发,使用Xcode编写MVC程序,文本框和...

    iOS 9开发指南 2015年版)(2-1)

    全书共39章,循序渐进地讲解了iOS 9应用开发的基本知识。本书从搭建开发环境讲起,依次讲解了Objective-C语言基础,Swift语言基础,Cocoa Touch,Xcode Interface Builder界面开发,使用Xcode编写MVC程序,文本框和...

Global site tag (gtag.js) - Google Analytics