(四期)简单添加TableViewCell的3D动画效果

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

{

//参考资料:http://beyondvincent.com/2014/01/13/2014-01-13-animation-tableview-cell/

//1、配置CATransform3D的内容

CATransform3D transform;

//该CATransform3DMakeRotation函数创建了一个转变,将在三维轴坐标系以任意弧度旋转层。

transform = CATransform3DMakeRotation( (90.0*M_PI)/180, 0.0, 0.7, 0.4);

//

//transform = CATransform3DMakeRotation(0.78, 0.0, 0.7, 0.4);

//

//transform = CATransform3DMakeRotation(radians(45.0), 0.0, 1.0, 0.0);

/*

参数:第一个参数是旋转的角度,对象按照你设定的角度的最短距离去旋转,后面三个参数分别是xyz(-1~1之间的值)代表的一个向量值

a、

//沿Y轴旋转

transform = CATransform3DMakeRotation( (90.0*M_PI)/180, 0.0, 1.0, 0.0);

//沿X轴旋转

transform = CATransform3DMakeRotation( (90.0*M_PI)/180, 1.0, 0.0, 0.0);

//沿Z轴旋转

transform = CATransform3DMakeRotation( (90.0*M_PI)/180, 0.0, 0.0, 1.0);

b、

0.78,用在前面的例子,是由角度值经计算转化为弧度值。要把角度值转化为弧度值,可以使用一个简单的公式Mπ/180 。

例如, 45π/180 = 45 ( 3.1415 ) / 180 = 0.7853 。

double radians(float degrees) {

return ( degrees * 3.14159265 ) / 180.0;

}

//当你创建一个转换的时候,你将要调用这个方法:

transform = CATransform3DMakeRotation(radians(45.0), 0.0, 1.0, 0.0);

*/

transform.m34 = 1.0/ -600;

/*

transform的结构如下:

struct CATransform3D

{

相关资料:http://blog.csdn.net/ch_soft/article/details/7351896/

CGFloat m11, m12, m13, m14;

CGFloat m21, m22, m23, m24;

CGFloat m31, m32, m33, m34;

CGFloat m41, m42, m43, m44;

};

简述:

首先要实现view(layer)的透视效果(就是近大远小),是通过设置m34的:

CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;

rotationAndPerspectiveTransform.m34 = 1.0 / -500;

m34负责z轴方向的translation(移动),m34= -1/D,  默认值是0,也就是说D无穷大,这意味layer in projection plane(投射面)和layer in world coordinate重合了。

D越小透视效果越明显。

所谓的D,是eye(观察者)到投射面的距离。

*/

// 2. 定义cell的初始状态

/*影子的颜色。默认为不透明的黑色。颜色创建从目前的模式是不受支持的。可以做成动画。*/

cell.layer.shadowColor = [[UIColor blackColor]CGColor];

/* 影子偏移量。默认为(0,-3)。可以做成动画。 */

cell.layer.shadowOffset = CGSizeMake(10, 10);

cell.alpha = 0;

cell.layer.transform = transform;

/*定义层的边界矩形的锚点,点上归一化层坐标- ‘(0,0)的左下角边界矩形”(1,1)”是右上角。默认为‘(0.5,0.5)”,即边界矩形的中心,可以做成动画。*/

cell.layer.anchorPoint = CGPointMake(0, 0.5);

// 3. 定义cell的最终状态,并提交动画

[UIView beginAnimations:@"transform" context:NULL];

[UIView setAnimationDuration:0.5];//慢动作

cell.layer.transform = CATransform3DIdentity;/* Returns true if ‘t‘ is the identity transform. 还原的意思吧?*/

cell.alpha = 1;

cell.layer.shadowOffset = CGSizeMake(0, 0);

cell.frame = CGRectMake(0, cell.frame.origin.y, cell.frame.size.width, cell.frame.size.height);

[UIView commitAnimations];

}

时间: 2024-10-07 09:11:00

(四期)简单添加TableViewCell的3D动画效果的相关文章

把商品添加到购物车的动画效果(贝塞尔曲线)

如图: 参考: Android补间动画,属性动画实现购物车添加动画 思路: 确定动画的起终点 在起终点之间使用二次贝塞尔曲线填充起终点之间的点的轨迹 设置属性动画,ValueAnimator插值器,获取中间点的坐标 将执行动画的控件的x.y坐标设为上面得到的中间点坐标 开启属性动画 当动画结束时的操作 难点: PathMeasure的使用 - getLength() - boolean getPosTan(float distance, float[] pos, float[] tan) 的理解

万彩动画大师丨如何给图片添加上升气泡的动画效果

给图片文字添加上升气泡的动画效果,可以给观众带来一种梦幻般的视觉感受. 在[时间轴区域]中点击[+],会弹出一个小窗体,接着在窗体的[搜索框]中输入动画效果[气泡]的首字母[qp]并搜索,接着会看到有[气泡]的动画效果,选择并点击[上升气泡]的动画效果,然后点击[确定],就可以实现给图片添加气泡上升的强调动画效果,如下图所示: 原文地址:https://www.cnblogs.com/focusky/p/10213282.html

iOS开发——仿淘宝添加到购物车的动画效果实现

这篇博文实在不知道该起什么名字才能概况我的意思...挫语文水平 类似于淘宝一样,我们在写一些购物.订餐之类的app的时候,在用户选择购买或者加入购物车时可以添加一个商品飞到购物车中的动画效果,如下图所示: 实现这个效果还是不算难的,但涉及的问题比较多,还是挺有学习价值的.主要面对的问题有以下几点 1.cell中有button,如何获得该button,即如何知道用户点击的是哪一个button. 2.坐标系的转换,这里频繁使用坐标系转换,主要原因是这里需要涉及三个视图--cell.tableView

HTML5 3D动画效果

对以前来讲,3D动画拿到网页上展示是一件非常奢侈的事情,第一是浏览器不够先进,第二是大部分只能用flash实现伪3D.HTML5的出现,让实现网页3D动画变得非常简单,当然前提是你不要再使用像IE678之类的浏览器了.下面精选的几款HTML5 3D动画,希望你会喜欢. 1.HTML5 SVG 3D空间模型 可拖拽缩放 这是一个基于HTML5和SVG的3D空间模型,这个3D模型提供了x.y.z三个坐标轴以及一个平面网格.我们可以对这个HTML5 3D模型进行缩放.拖拽.翻转等操作,这些操作可以通过

css3 transition属性实现3d动画效果

transition属性是一个很强大的3d动画属性,我动手试了一下,很多在网上很火的网页动画都可以用这个属性实现,只能说这个属性是在是太强大啦,本人在学习次属性之后才知道自己对css3的认识还是偏少,现在我给大家介绍并实际实现下该属性. transition字面意思是变迁.变换.过度的意思,所以transition属性也离不开这个大致意思,其中该属性中的重要属性是: transition-property:指定过度的元素; 如:transition-property:background,就是指

简单的“加载中”动画效果

在日常开发过程中,处理一些延迟操作的时候,经常需要显示一个"加载中"对话框来来表示程序正在请求或正在处理.那么如何写一个最简单的动画效果呢? 这里我写了个demo: MainActivity: public class MainActivity extends Activity {     //ProgressDialog用于显示加载对话框用     private ProgressDialog progressDialog = null;     //显示结果用     privat

3D动画效果照片墙demo

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title>    <style>        html,        body {            margin: 0;            padding: 0;                       

iOS添加到购物车的简单动画效果

[objc] view plaincopyprint? [objc] view plaincopyprint? #pragma mark - 添加到购物车的动画效果 // huangyibiao - (void)addAnimatedWithFrame:(CGRect)frame { // 该部分动画 以self.view为参考系进行 frame = [[UIApplication sharedApplication].keyWindow  convertRect:frame fromView:

css3实现3D动画轮播图

这个感觉有点水,只是一个很简单的css3的3D动画,不过对于不会的人来说,应该还是蛮能唬人的吧,哈. 原理很简单,老规矩,都在注释里面,可以直接复制走代码,粘贴 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> * { padding: 0; marg