草庐IT

CATransform

全部标签

ios - UIView 的动画透视以向上/远离底部翻转一半

我有一个View,我想像这里的插图一样翻转。我目前的解决方案:[UIViewanimateWithDuration:durationanimations:^{[someView.layersetAffineTransform:CGAffineTransformMakeScale(1,0)];}];这个解决方案的问题是,顶部边缘向下移动,而底部边缘向上移动。我希望顶部边缘保持不变,底部边缘向上/远离,如图所示。编辑:就像那些猫门,哈哈。你用顶部的铰链将圆盘/方形表面推离你。EDIT2:解决方案。CGFloatsomeViewHeight=self.someView.frame.size.

IOS 范式轮播

我正在使用iCarousel(http://cocoacontrols.com/platforms/ios/controls/icarousel)构建一个IOS应用我想改造旋转木马,让它看起来像一个“FAN”。因此,所有卡片都将在顶部一次合并,您可以滚动卡片。我的客户从Absolut的Drinkspiration中得到这个想法:我怎样才能改变轮播以获得这种“效果”谢谢你的帮助 最佳答案 给你:-(CATransform3D)carousel:(iCarousel*)_carouseltransformForItemView:(UIV

ios - 如何围绕 Y 轴翻转 CALayer?

我在CALayer的子类中使用此代码,其中实例是根CALayer的子层。-(void)setSelected:(bool)s{selected=s;if(s){CATransform3Drot=CATransform3DMakeRotation(M_PI,0,1,0);rot.m34=-1.0/200;[selfsetTransform:rot];}else{CATransform3Drot=CATransform3DMakeRotation(0,0,1,0);rot.m34=-1.0/200;[selfsetTransform:rot];}}当所选属性设置为TRUE时,会发生以下情况

ios - 如何在 CATransform3D 中正确设置透视

我开始玩CATransform3D并且我得到了大部分内容。但是我不明白的一件事是透视。我知道它是m34并且我知道它如何改变结果,但我不太明白如何为我的案例获得理想值。是试错法还是有解析法计算?有这个项目,3DTransformFun,我想提一下,这对我构建转换有很大帮助。 最佳答案 很高兴您发现3DTransformFun对您有所帮助!那里有一个默认的-1/500透视图,IIRC,但显然您可以通过提供手动转换来解决这个问题。该值对透视的影响与“相机”与图层的距离(或更常见的是-1/距离)有关,如thisanswer中所述。.如果你将

objective-c - iOS CATransform3D 坐标

非常感谢对此的任何帮助。我在一个View上应用了3D变换,需要识别渲染View的边缘坐标,以便我可以呈现另一个与其相邻的View(没有任何像素间隙)。具体来说,我希望通过动画角度将一系列View(“页面”)像传单一样折叠起来。intdir=(isOddNumberedPage?1:-1);floatangle=10.0;theView.frame=CGRectMake(pageNumber*320,0,320,460);CATransform3DrotationAndPerspectiveTransform=CATransform3DIdentity;rotationAndPerspe

ios CATransform3DMakeScale 放大动画

我有以下动画:CATransform3DscaleTransform=CATransform3DMakeScale(0.1,0.1,1.0);scaleAnimation.toValue=[NSValuevalueWithCATransform3D:scaleTransform];keyframeAnimation.timingFunction=[CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseIn];;我正在缩小subview的位置。但我正在尝试做相反的事情。从subview大小的.01%开始,到subv

ios - 使用 CATransform3D 性能不佳

我正在尝试使用CALayer3d转换创建3D用户界面。我已经想出了实现这一点的基本技术,但我的实时性能很差。具体来说,用户应该能够以交互方式“平移”界面“场景”。在下面的片段中,“模型”是我要制作动画的图层。“相机”是一个CATransform3D矩阵,我通过应用触摸转换不断更新它。该方法有效,但平移非常缓慢。如果我使用CGAffineTransform取消注释该部分,我将获得快速响应的平移-但我将失去平移时应该发生的视角变化。-(void)didPan:(UIPanGestureRecognizer*)pan{if(pan.state==UIGestureRecognizerStat

ios - 使用 CATransform3DMakeRotation 平滑水平翻转

我设置了以下动画以在不同大小的View之间旋转。随着新的、更高的View进入视野,动画的中点似乎有一个闪烁。我可以做些什么来顺利过渡。newView.layer.transform=CATransform3DMakeRotation(M_PI_2,0.0,1.0,0.0);[UIViewanimateWithDuration:0.5delay:0options:UIViewAnimationOptionCurveLinearanimations:^{oldView.layer.transform=CATransform3DMakeRotation(M_PI_2,0.0,-1.0,0.0

iphone - IOS CATransform3DMakeRotation 需要矢量方面的帮助

我正在尝试制作翻页动画,并在互联网上找到了这段代码。这非常有效。它使页面从右到左翻动,就像一本普通的书一样。我想修改代码以使其从左到右移动,但我无法弄清楚向量和anchor是如何工作的。请注意我认为需要更改的这两行。我只是不确定要...viewToOpen.layer.anchorPoint=CGPointMake(0.0f,0.5f);viewToOpen.center=CGPointMake(viewToOpen.center.x-viewToOpen.bounds.size.width/2.0f,viewToOpen.center.y);CATransform3DendTrans

ios - 使用 CATransform3DRotate 制作动画

我的代码在下面,但是动画是立即发生的,即View不再可见:UIView*leftDoorView=[[UIViewalloc]initWithFrame:CGRectMake(0,0,self.view.bounds.size.width/2,self.view.bounds.size.height)];leftDoorView.backgroundColor=[UIColorgreenColor];leftDoorView.layer.anchorPoint=CGPointMake(0.0,0.5);[self.viewaddSubview:leftDoorView];leftDoo