推特为iPad实现了一种奇特的“捏来扩大纸折叠”的效果。这里有一段短片。http://www.youtube.com/watch?v=B0TuPsNJ-XY
这能用没有CATransform3D的OpenGL来完成吗?一个有用的例子是值得感激的。
更新:I对此动画效果的方法或实现感兴趣。这就是为什么我悬赏这个问题的原因-斯里卡
发布于 2011-06-28 06:17:49
下面是一个非常简单的示例,它使用手势识别器和CATransform3D来帮助您入门。只需捏一下就可以旋转灰色视图。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// ...
CGRect rect = self.window.bounds;
view = [[UIView alloc] initWithFrame:CGRectMake(rect.size.width/4, rect.size.height/4,
rect.size.width/2, rect.size.height/2)];
view.backgroundColor = [UIColor lightGrayColor];
[self.window addSubview:view];
CATransform3D transform = CATransform3DIdentity;
transform.m34 = -1/500.0; // this allows perspective
self.window.layer.sublayerTransform = transform;
UIPinchGestureRecognizer *rec = [[UIPinchGestureRecognizer alloc] initWithTarget:self
action:@selector(pinch:)];
[self.window addGestureRecognizer:rec];
[rec release];
return YES;
}
- (void)pinch:(UIPinchGestureRecognizer *)rec
{
CATransform3D t = CATransform3DIdentity;
t = CATransform3DTranslate(t, 0, -self.view.bounds.size.height/2, 0);
t = CATransform3DRotate(t, rec.scale * M_PI, 1, 0, 0);
t = CATransform3DTranslate(t, 0, -self.view.bounds.size.height/2, 0);
self.view.layer.transform = t;
}发布于 2011-06-28 05:53:09
发布于 2011-06-28 05:51:31
其效果基本上只是一个围绕X轴旋转的视图:当你从列表中拖出一条推文时,就会有一个与X平面平行的视图。当用户不收缩时,视图围绕X轴旋转,直到它完全进入X平面。文档说:
CATransform3D数据结构定义了一个均匀的三维变换( CGFloat值的4×4矩阵),用于旋转、缩放、偏移、倾斜,并将透视转换应用于层。
此外,我们知道CALayer的transform属性是一个CATransform3D结构,它也是可动画的。因此,我认为这是安全的说,折叠效果的问题是可以做的核心动画。
https://stackoverflow.com/questions/5385898
复制相似问题