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

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
分享到:
评论

相关推荐

    UIView 保存为图片

    首先,UIView是一个用于在屏幕上显示内容的基本类,它可以包含子视图,承载各种控件或自定义绘制的图形。当需要将UIView保存为图片时,通常会用到`renderInContext:`方法。这个方法可以将UIView的内容渲染到一个...

    ios-UIView类别方法添加系统动画,只需一句话。.zip

    1. **启动基本动画**:可能有一个方法如`+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void(^)(void))animations`,用于执行一个简单的块动画,其中`duration`参数定义了动画持续的时间,`...

    iOS实现UIView渐变效果

    首先,我们需要理解渐变色的基本概念。渐变色是指从一种颜色平滑过渡到另一种颜色的过程,可以是线性的、径向的或其他类型的。在iOS中,我们可以使用Core Graphics框架来创建和应用渐变效果。线性渐变是最常见的类型...

    UIView的介绍,OC版的

    本文将深入探讨`UIView`的基本概念、重要属性、方法以及它在iOS界面构建中的作用。 首先,`UIView`是UIKit框架中的一个基础类,它是所有可见界面元素的基类,包括按钮、文本框、图片视图等。它负责在屏幕上绘制和...

    Swift自定义UIView动画

    除了基本的动画,Swift还支持更复杂的动画组合,如`animate(withDuration:delay:options:animations:completion:)`方法,可以添加延迟、设置动画选项(比如曲线类型)以及在动画结束后执行的回调。 `UIView`动画不...

    uiview随手势旋转

    在iOS开发中,UIViews是构建用户界面的基本元素,它们可以承载各种视图内容,如按钮、图片、文本等。为了提供丰富的交互体验,开发者经常需要实现手势识别功能,允许用户通过触摸屏幕来执行特定的操作。"uiview随...

    UIView转化为ImageDemo

    然后,通过调用UIView的`drawViewHierarchyInRect:afterScreenUpdates:`方法,将整个视图层次结构绘制到这个图形上下文。这一步会捕获视图及其子视图的所有内容。 2. **从图形上下文获取UIImage**: 绘制完成后,...

    iOS中UIView的翻页动画demo

    在iOS开发中,UIView是构建用户界面的基本元素,它提供了丰富的功能来展示各种视图内容。本示例“iOS中UIView的翻页动画demo”旨在演示如何为UIView实现逼真的翻页效果,让用户体验如同翻阅实体书页一样的平滑过渡。...

    UIView扩展类

    在iOS开发中,UIView是构建用户界面的基本元素,它提供了绘制和交互的基础。"UIView扩展类"是一个方便的工具,可以极大地简化开发过程,特别是对于屏幕适配的问题。这个扩展类通常包含了一些实用方法,使得开发者能...

    ios-UIView设置局部阴影,左右上下,左右底部阴影.zip

    为了实现这样的效果,我们需要自定义UIView的子类,并重写`layoutSubviews`方法。在这个方法中,我们可以动态地调整阴影的边缘和偏移,以实现局部阴影。以下是一段示例代码: ```swift class CustomView: UIView { ...

    iOS UIView

    通过本文对`UIView`的基本概念、关键属性与方法、生命周期、事件处理以及动画等方面的介绍,相信读者已经对其有了更深入的理解。在未来的学习和实践中,不断探索`UIView`的各种特性和用法,将有助于开发者创建出更加...

    UIView相关示例代码

    在iOS开发中,UIView是构建用户界面的基本组件,它提供了屏幕上的可视区域,可以包含其他视图、图像、标签等元素。本示例代码着重展示了UIView及其子类UILabel、UIImageView和UIImage的常见用法,以及如何通过...

    ios UIView或者UIViewController缩放动画效果

    iOS提供了一系列内置的`UIView`动画方法,如`animate(withDuration:animations:)`,`animate(withDuration:delay:options:animations:completion:)`等,它们允许开发者在指定的时间内执行一系列动画。对于视图的缩放...

    UIView动画

    `UIView`动画是基于`Core Animation`框架的简化版本,它提供了便捷的方法来创建基本的过渡效果,如移动、缩放、旋转等。在`UIView`动画中,我们通常使用`animateWithDuration:`方法或者`UIViewPropertyAnimator`类来...

    iPhone开发UIView

    1. **UIView基本概念**:`UIView`是所有UI元素的基类,包括按钮、文本框、标签等。它负责在屏幕上绘制内容,管理子视图的布局,并处理触控事件。 2. **视图层次**:`UIView`具有子视图的概念,可以通过`addSubview:...

    UIView+ResetSize

    在iOS开发中,UIView是构建用户界面的基本元素,它代表屏幕上的一个矩形区域,用于显示内容和响应用户的交互。为了提高代码的可读性和开发效率,开发者常常会使用Category或者Extension来为现有的类添加额外的功能。...

    动画之CAAnimation和UIView

    UIView的动画通常通过`UIView.animate(withDuration:animations:)`方法实现,它适合处理视图层级上的变化,且易于理解和使用。在"UIView_animate"的示例中,可能包含了如何使用`UIView.animate(withDuration:...

    动画1-UIView动画

    在Xcode 6中,我们通常会使用`animateWithDuration:animations:`方法来创建一个基本的动画。这个方法接收两个参数:动画的持续时间和一个block,在这个block中我们可以改变`UIView`的属性来定义动画效果。 例如,...

    ios UIView翻转动画效果

    首先,我们来了解UIView动画的基本概念。UIView类提供了动画支持,通过调用其`animateWithDuration:animations:`方法,我们可以创建一系列连续的变化,这些变化在指定的时间内以平滑的方式进行。对于翻转动画,我们...

    UIView Class Reference

    1. **视图(View)**:在iOS开发中,`UIView` 是所有用户界面元素的基本单位。它负责绘制自身以及其子视图,并管理这些子视图的布局。一个视图可以包含多个子视图,从而形成复杂的用户界面。 2. **上下文(Context)**...

Global site tag (gtag.js) - Google Analytics