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 !");
}
运行程序,点击按钮,就能看到动画效果了。
相关推荐
首先,UIView是一个用于在屏幕上显示内容的基本类,它可以包含子视图,承载各种控件或自定义绘制的图形。当需要将UIView保存为图片时,通常会用到`renderInContext:`方法。这个方法可以将UIView的内容渲染到一个...
1. **启动基本动画**:可能有一个方法如`+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void(^)(void))animations`,用于执行一个简单的块动画,其中`duration`参数定义了动画持续的时间,`...
首先,我们需要理解渐变色的基本概念。渐变色是指从一种颜色平滑过渡到另一种颜色的过程,可以是线性的、径向的或其他类型的。在iOS中,我们可以使用Core Graphics框架来创建和应用渐变效果。线性渐变是最常见的类型...
本文将深入探讨`UIView`的基本概念、重要属性、方法以及它在iOS界面构建中的作用。 首先,`UIView`是UIKit框架中的一个基础类,它是所有可见界面元素的基类,包括按钮、文本框、图片视图等。它负责在屏幕上绘制和...
除了基本的动画,Swift还支持更复杂的动画组合,如`animate(withDuration:delay:options:animations:completion:)`方法,可以添加延迟、设置动画选项(比如曲线类型)以及在动画结束后执行的回调。 `UIView`动画不...
在iOS开发中,UIViews是构建用户界面的基本元素,它们可以承载各种视图内容,如按钮、图片、文本等。为了提供丰富的交互体验,开发者经常需要实现手势识别功能,允许用户通过触摸屏幕来执行特定的操作。"uiview随...
然后,通过调用UIView的`drawViewHierarchyInRect:afterScreenUpdates:`方法,将整个视图层次结构绘制到这个图形上下文。这一步会捕获视图及其子视图的所有内容。 2. **从图形上下文获取UIImage**: 绘制完成后,...
在iOS开发中,UIView是构建用户界面的基本元素,它提供了丰富的功能来展示各种视图内容。本示例“iOS中UIView的翻页动画demo”旨在演示如何为UIView实现逼真的翻页效果,让用户体验如同翻阅实体书页一样的平滑过渡。...
在iOS开发中,UIView是构建用户界面的基本元素,它提供了绘制和交互的基础。"UIView扩展类"是一个方便的工具,可以极大地简化开发过程,特别是对于屏幕适配的问题。这个扩展类通常包含了一些实用方法,使得开发者能...
为了实现这样的效果,我们需要自定义UIView的子类,并重写`layoutSubviews`方法。在这个方法中,我们可以动态地调整阴影的边缘和偏移,以实现局部阴影。以下是一段示例代码: ```swift class CustomView: UIView { ...
通过本文对`UIView`的基本概念、关键属性与方法、生命周期、事件处理以及动画等方面的介绍,相信读者已经对其有了更深入的理解。在未来的学习和实践中,不断探索`UIView`的各种特性和用法,将有助于开发者创建出更加...
在iOS开发中,UIView是构建用户界面的基本组件,它提供了屏幕上的可视区域,可以包含其他视图、图像、标签等元素。本示例代码着重展示了UIView及其子类UILabel、UIImageView和UIImage的常见用法,以及如何通过...
iOS提供了一系列内置的`UIView`动画方法,如`animate(withDuration:animations:)`,`animate(withDuration:delay:options:animations:completion:)`等,它们允许开发者在指定的时间内执行一系列动画。对于视图的缩放...
`UIView`动画是基于`Core Animation`框架的简化版本,它提供了便捷的方法来创建基本的过渡效果,如移动、缩放、旋转等。在`UIView`动画中,我们通常使用`animateWithDuration:`方法或者`UIViewPropertyAnimator`类来...
1. **UIView基本概念**:`UIView`是所有UI元素的基类,包括按钮、文本框、标签等。它负责在屏幕上绘制内容,管理子视图的布局,并处理触控事件。 2. **视图层次**:`UIView`具有子视图的概念,可以通过`addSubview:...
在iOS开发中,UIView是构建用户界面的基本元素,它代表屏幕上的一个矩形区域,用于显示内容和响应用户的交互。为了提高代码的可读性和开发效率,开发者常常会使用Category或者Extension来为现有的类添加额外的功能。...
UIView的动画通常通过`UIView.animate(withDuration:animations:)`方法实现,它适合处理视图层级上的变化,且易于理解和使用。在"UIView_animate"的示例中,可能包含了如何使用`UIView.animate(withDuration:...
在Xcode 6中,我们通常会使用`animateWithDuration:animations:`方法来创建一个基本的动画。这个方法接收两个参数:动画的持续时间和一个block,在这个block中我们可以改变`UIView`的属性来定义动画效果。 例如,...
首先,我们来了解UIView动画的基本概念。UIView类提供了动画支持,通过调用其`animateWithDuration:animations:`方法,我们可以创建一系列连续的变化,这些变化在指定的时间内以平滑的方式进行。对于翻转动画,我们...
1. **视图(View)**:在iOS开发中,`UIView` 是所有用户界面元素的基本单位。它负责绘制自身以及其子视图,并管理这些子视图的布局。一个视图可以包含多个子视图,从而形成复杂的用户界面。 2. **上下文(Context)**...