jjzjj

CGAffineTransform

全部标签

ios - CGAffineTransform:如何计算乘法CGAffineTransform?

我需要将View从原点(250,250)转换为原点(352,315),并将宽度/高度从(100.0,100.0)更改为(68,68)。我知道我可以将几个CGAffineTransform函数组合在一起,例如缩放、旋转、平移。但我不知道如何计算这些转换的顺序,以及它们的确切参数。我已经尝试了几次,但无法将View移动到正确的位置。有人可以帮忙吗? 最佳答案 对这些矩阵转换的幕后发生的事情有一点了解总是好的。Apple文档有一个greatdocumentation关于转换,所以让我们使用它。一个翻译矩阵看起来像:|100||010||t

ios - 摇动动画旋转显示以及动画

我有一种方法可以执行一个小的摇动动画。这个动画有点效果,但每次我从横向位置调用它时它都会旋转。当模拟器处于横向时调用动画时,整个View将自身旋转为纵向,然后执行动画。旋转本身不是动画,它只是突然变化,没有延迟。View中的所有内容也会发生变化,所有按钮、文本字段、ImageView等。动画代码:-(void)shakeView{CGFloatt=8.0;CGAffineTransformtranslateRight=CGAffineTransformTranslate(CGAffineTransformIdentity,0.0,t);CGAffineTransformtranslat

ios - CALayer 如何在其子层之间转换点?

假设我们有一个二维空间(为简化情况)、S层和C层,其中C是S的子层。转换过程必须影响边界,C的位置,C的变换,S的sublayersTransform,C的anchorPoint。我的猜测是下一个:CGAffineTransformtransformToChild(CALayer*S,CALayer*C){CGFloattxa=-C.bounds.origin.x-C.bounds.size.width*C.anchorPoint.x;CGFloattya=-C.bounds.origin.y-C.bounds.size.height*C.anchorPoint.y;CGFloattx

ios - CGAffineTransform 比例不从中心缩放 - 导出

我想我的问题与其他帖子的不同之处在于我没有缩放View,而是缩放Assets层指令(AVMutableVideoCompositionLayerInstruction)。所以设置anchor、view.center、CGRect缩放都不起作用。除了使用CGAffineTransformMakeTranslation移动Assets以使其看起来像居中,但非常不准确,我无法弄清楚如何使其从中心缩放。有没有我缺少的属性(property)?文档和指南不是很有帮助,但也许我错过了一些东西。代码如下。谢谢大家!!!:)此外,对于那些寻找使用CGTransforms导出avasset的方法的人来说

ios - 使用另一个 View 的中心作为 anchor 旋转 View

我有两个ImageView。第一个是蓝色箭头,第二个是白色圆圈,画有一个黑点代表圆心。我正在尝试旋转箭头,这样它的anchor就是图片中的黑点,就像这样现在我将箭头层的anchor设置为这样计算的点CGFloaty=_userImageViewContainer.center.y-CGRectGetMinY(_directionArrowView.frame);CGFloatx=_userImageViewContainer.center.x-CGRectGetMinX(_directionArrowView.frame);CGFloatyOff=y/CGRectGetHeight(_

ios - 从角落调整旋转的 UIView 的大小

我有一个带有四个角handle的UIViewselectFrame作为subview。每个角handle都有一个调用此方法的UIPanGestureRecognizer:这是我的代码(其中self是selectFrameUIView):-(void)handleDrag:(UIPanGestureRecognizer*)gesture{UIView*view=gesture.view;CGPointtranslation=[gesturetranslationInView:view.superview];CGRectframe=self.bounds;switch(view.tag){

iphone - 翻转时如何恢复保存的变换

我坚持对象的变换和框架。当应用程序重新加载时,我只需要在新View上恢复框架和变换。你会认为你可以简单地设置框架并转换为保存的值,但你不能。这样做会产生不良结果。http://iphonedevelopment.blogspot.com/2008/10/demystifying-cgaffinetransform.html说:“当你应用成功的转换时,顺序很重要。旋转然后平移会给你一个不同的结果,然后平移然后旋转。如果你不小心,这可能会咬你。”只有当我保存已FLIPPED&ROTATED的转换时,我才会遇到转换问题。我的保存值与应用于恢复View的值相同。实际结果:做的时候:myNewV

ios - Objective-C 转换为 X 和 Y

我一直在研究CGAffineTransforms并且想知道是否有一种方法可以让您查看并放大x,y坐标。我使用函数缩小了缩放部分:CGAffineTransformMakeScale(4.00,4.00);但是我不确定如何将缩放比例与可能的x,y坐标联系起来。有没有人做过这样的事情?我可能在使用这些功能时不正确吗?-(void)buttonSelected:(id)sender{UIButton*b=sender;CGPointlocation=b.frame.origin;[UIViewanimateWithDuration:1.3fdelay:0.0foptions:UIViewAn

ios - 绘制时对 UIImage 应用变换

尝试将可以缩放或旋转的较小图像叠加到较大图像上:+(UIImage*)addToImage:(UIImage*)baseImagenewImage:(UIImage*)newImageatPoint:(CGPoint)pointtransform:(CGAffineTransform)transform{UIGraphicsBeginImageContext(baseImage.size);[baseImagedrawInRect:CGRectMake(0,0,baseImage.size.width,baseImage.size.height)];[newImagedrawAtPoi

ios - 如何在转换前计算 UIView 的框架?

问题我有一个UIView,我向它应用了一个CGAffineTransform。我希望能够知道View的框架如果未应用转换。我正在寻找一种(简单的)解决方案来处理变换是“零变换”(不可逆)的情况。我的尝试我猜以下不适用于“零变换”。CGRectresult;CGAffineTransformtransform=self.transform;result=CGRectApplyAffineTransform(self.frame,CGAffineTransformInvert(transform));returnresult;为什么?我需要为动画做这个:初始设置:我将transform设置