iOS新浪微博客户端开发(3)——主界面搭建与动画
来源:互联网 发布:小学网络建设方案 编辑:程序博客网 时间:2024/06/05 08:52
转载自:http://blog.csdn.net/chy305chy/article/details/43344683
首先看一下最终效果:
一、底部TabBar和TabBarItem的封装
1. TabBarItem
该父类又派生出两个子类:TabBarItemCommon(中间加号按钮两边的四个按钮)和TabBarItemCompose(中间的加号按钮)
对于TabBarItemCommon,首先重写其initWithFrame方法,用于初始化时设置按钮中文字的位置、大小和按钮图片的内容模式等;
然后,重写其setHighlighted方法,防止点击按钮时触发highlighted状态,并重写imageRectForContentRect和TitleRectForContentRect方法,调整按钮内部image和label的frame。
2、TabBar
TabBar主要负责创建底部的TabBar并向其中添加按钮,该类中定义了一个TabBarDelegate协议:
主界面控制器作为其代理,当TabBar监听到按钮的点击事件后,将消息传递给主界面控制器MainViewController,由主界面控制器切换相应的子控制器和视图。MainViewController.m
二、主控制器MainViewController
MainViewController中按顺序添加了所有的子控制器,所有的子控制器都由作为一个导航控制器的根控制器,这些导航控制器都由同一个MainNavigationController创建并初始化,以控制应用中所有控制器的样式。
三、(转)CoreAnimation介绍
一、Core Animation简介
* Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍。也就是说,使用少量的代码就可以实现非常强大的功能。
* Core Animation可以用在Mac OS X和iOS平台。
* 乔帮主在2007年的WWDC大会上亲自为你演示Core Animation的强大:点击查看视频
* Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程。
* 要注意的是,Core Animation是直接作用在CALayer上的,并非UIView。
二、Core Animation的使用步骤
1.使用它需要先添加QuartzCore.framework框架和引入主头文件<QuartzCore/QuartzCore.h>
2.初始化一个CAAnimation对象,并设置一些动画相关属性
3.通过调用CALayer的addAnimation:forKey:方法增加CAAnimation对象到CALayer中,这样就能开始执行动画了
4.通过调用CALayer的removeAnimationForKey:方法可以停止CALayer中的动画
三、CAAnimation
* 从前面的叙述可以看出,要想执行动画,就必须初始化一个CAAnimation对象。
* 其实,一般情况下,我们使用的比较多的是CAAnimation的子类,因此,先大致看看CAAnimation的继承结构:
黑线代表继承,黑色文字代表类名,白色文字代表属性。其中CAMediaTiming是一个协议(protocol)。
1.CAAnimation的常用属性
* CAAnimation是所有动画类的父类,但是它不能直接使用,应该使用它的子类
* 常见属性有:
1> duration:动画的持续时间
2> repeatCount:动画的重复次数
3> timingFunction:控制动画运行的节奏
- kCAMediaTimingFunctionLinear(线性):匀速,给你一个相对静态的感觉
- kCAMediaTimingFunctionEaseIn(渐进):动画缓慢进入,然后加速离开
- kCAMediaTimingFunctionEaseOut(渐出):动画全速进入,然后减速的到达目的地
- kCAMediaTimingFunctionEaseInEaseOut(渐进渐出):动画缓慢的进入,中间加速,然后减速的到达目的地。这个是默认的动画行为。
4> delegate:动画代理,用来监听动画的执行过程
代理对象需要实现的方法有:(这几个方法被定义在某个分类中)
1 @interface NSObject (CAAnimationDelegate)2 // 动画开始执行的时候触发这个方法3 - (void)animationDidStart:(CAAnimation *)anim;4 5 // 动画执行完毕的时候触发这个方法6 - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag;7 @end
* 上面介绍的所有属性都是属于CAAnimation的,因此,CAAnimation的所有子类都能使用它们。
2.其他
* CAPropertyAnimation也是不能直接使用的,也要使用它的子类
* 所以,能用的动画类只剩下4个:CABasicAnimation、CAKeyframeAnimation、CATransition、CAAnimationGroup
四、CAPropertyAnimation
* CAPropertyAnimation是CAAnimation的子类,但是不能直接使用,要想创建动画对象,应该使用它的两个子类:CABasicAnimation和CAKeyframeAnimation
* 它有个NSString类型的keyPath属性,你可以指定CALayer的某个属性名为keyPath,并且对CALayer的这个属性的值进行修改,达到相应的动画效果。比如,指定@"position"为keyPath,就会修改CALayer的position属性的值,以达到平移的动画效果
* 因此,初始化好CAPropertyAnimation的子类对象后,必须先设置keyPath,搞清楚要修改的是CALayer的哪个属性,执行的是怎样的动画
- iOS新浪微博客户端开发(3)——主界面搭建与动画
- iOS新浪微博客户端开发(3)——主界面搭建与动画
- iOS新浪微博客户端开发(1)——新特性界面
- iOS新浪微博客户端开发(1)——新特性界面
- ios开发——新浪微博客户端
- 新浪微博客户端开发之主界面实现
- iOS新浪微博客户端开发(2)——OAuth授权
- iOS新浪微博客户端开发(2)——OAuth授权
- Android新浪微博客户端(五)——主界面的TabHost和WeiboUtil
- Android新浪微博客户端(一)——主框架搭建
- Android新浪微博客户端(一)——主框架搭建
- Android新浪微博客户端(一)——主框架搭建
- 新浪微博开发(四)微博客户端第一个界面
- Android新浪微博客户端(六)——Home界面的ListView
- iOS新浪微博客户端开发(4)——自定义微博Cell的实现
- IOS新浪微博客户端开发练习知识点总结(一)
- 新浪微博客户端开发之引导界面的实现
- ios新浪微博客户端
- 能上google的hosts更新2015-04-13
- How to deploy iOS apps to the iPhone via the command line
- iOS开发:创建真机调试证书
- [MFC] 脚本错误:对象不支持此属性或方法
- C语言自学笔记4(循环)
- iOS新浪微博客户端开发(3)——主界面搭建与动画
- .NET框架及常用语详解
- 噩梦系列篇之Playe攻击敌人与敌人声音播放完成
- #笔记#圣思园 JavaSE 第29讲——String类源代码深析
- 常见的几种ETL工具
- Makefile控制编译的.c列表
- Android通过代码模拟物理、屏幕点击事件
- 数据库性能优化二:数据库表优化
- 高通Android 4.4 短信应用ConversationList 的分析