问题标签 [cgaffinetransform]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
751 浏览

iphone - 使用 UIImageView 和 CGAffinetransform 绘制的重复图层

我在将转换应用到 UIImageView 的图层时遇到问题。使用下面的代码,我试图旋转这个针,但我得到了重复的副本。我检查了没有其他地方添加了针图像,并且注释掉了addSubview没有一个出现,所以它肯定是画了两次。

左侧的指针位于图像视图应该开始的位置,-20。右边的指针在它旋转并显示正确值的方面起作用needleValue。我在做什么错才能获得重复抽奖?

替代文字

0 投票
1 回答
463 浏览

ios4 - iPhone用代码定位UIImageView?当然很容易解决

这很简单,所以我不确定为什么我不能这样做。当我的应用程序处于活动状态时,我想做的只是定位一些 UIImageViews。我一直在使用 CGAffineTransformMakeTranslation,但我现在可以看到这是不正确的,因为它将视图移动了设定的数量而不是将其移动到设定的位置。我应该使用什么?

0 投票
1 回答
2655 浏览

ios4 - iPhone帮助动画CGAffineTransform重置?

嗨,我完全对 CGAffineTransform 动画感到困惑。我要做的就是将精灵从右侧的位置移动到左侧的位置。当它停止时,我想“重置”它,即将它移回它开始的地方。如果应用程序退出(多任务处理),我想在开始时再次重置位置并重复动画。

这是我用来制作动画的..

据我了解,CGAffineTransforms 只是在视觉上使精灵看起来像是被移动了,但实际上并没有移动它。因此,当我尝试使用“重置”位置时

ufo.center = CGPointMake(355, 70);

它什么也没做。

如果我打电话,我确实有一些工作

ufo.transform = CGAffineTransformTranslate(ufo.transform, 270, -100);

它重置。问题是如果我在动画中途退出应用程序,那么当它重新启动时,它不一定从头开始,也没有去正确的地方,它基本上会发疯!

有没有办法只删除应用到它的任何转换?我正在考虑只使用一个计时器,但是当这种方法应该起作用时,这似乎很愚蠢。我已经为此苦苦挣扎了一段时间,因此我们将不胜感激。

谢谢

0 投票
1 回答
245 浏览

xcode - iOS中的拱形UILabel

我正在尝试找出一种方法来转换 UILabel 以使文本呈拱形(山形)但运气不佳。我看过 CGAffine 变换,但没有找到太多关于我想要完成的内容。有任何想法吗?

0 投票
2 回答
6633 浏览

ios - 使用 CGAffine 旋转视图后的平移

我有一个包含一些文本字段的视图。我这样设置视图的方向

我的问题是我想让该视图在键盘出现时向上移动,因为键盘隐藏了一些文本字段。我想我必须使用 CGAffineTransformMakeTranslation,但我不知道在旋转之后如何使用它。

有人可以帮我解决这个问题吗?

0 投票
1 回答
904 浏览

ipad - 如何跟踪连续的 CGAffineTransforms 以到达屏幕上的特定点?

如何在不跟踪执行的每个操作的情况下执行多个 CGAffineTransform 操作(在动画块中)?

平移操作不采用 x,y 坐标,而是采用要移位的值。因此,除非您知道当前被翻译到的位置,例如“位置 2”,否则您如何知道要转换到“位置 3”的值?

例如:

UIView 的框架位于 (0, 0) - 位置 1。我将变换设置为平移到 (768, 0) 并旋转 -90 度 - 位置 2。一段时间过去了,现在我想移动到 (768, 1024)再旋转 -90 度 - 位置 3。

我怎么知道从位置 2 移动到位置 3 需要翻译什么?

在上下文中,我正在尝试实现如下所示的 iPad 视图:

  • 一个占据整个屏幕的 UIView
  • 占据上边缘并位于 UIView 顶部的 UIToolbar
  • 当 iPad 旋转时,UIView 会留在设备上,但工具栏会旋转,使其始终位于屏幕的顶部边缘。

我正在使用 CGAffineTransform 平移和旋转来移动工具栏。效果很好,除非我多次旋转 iPad。第一次翻译/旋转将完美无缺。以下转换将关闭,因为我不知道要转换的正确值。

更新:

看起来如果我采用 UIView.transform 结构中的当前翻译 (tx, ty) 值并使用它们与新位置之间的差异,它就可以工作。但是,如果视图已旋转,则此方法不起作用。由于之前的旋转,tx 和 ty 值可以翻转。我不确定如何处理。

更新 2:

做一些研究,我发现我可以从 tx, ty 获得原始的、未旋转的点,方法是获取点的绝对值,如果 UIView 是垂直的,则可能交换 x 和 y。现在我被困在弄清楚如何以正确的顺序正确应用下一组转换。似乎无论我如何连接它们, UIView 最终都会出现在错误的位置。看起来这太复杂了,必须有一个更简单的方法。

0 投票
4 回答
6699 浏览

iphone - 动画移动和旋转 UIView 不太有效

我想创建一个同时移动和旋转 UIView 的动画。我尝试了以下代码:

结果是,动画完成后视图绘制不正确(某些部分不再可见)。如果我只更改动画的框架或转换,则视图将正确绘制。仅当我同时设置框架和转换时才会出现问题。

同时动画移动和旋转视图的正确方法是什么?

0 投票
1 回答
2278 浏览

iphone - 如何围绕 z 轴 + iphone 旋转 ImageView?

我已经定制了一个轮播视图(照片库),当我滚动时,我希望图像向屏幕背面旋转。给人一种图像以圆形方式移动的印象。

CGAffineTransformRotate只是在 x 轴上旋转图像。我想以最终图像垂直于屏幕的方式旋转它。

有什么想法的人吗?

编辑:**我不认为我的问题很清楚。我想要的是屏幕上的图像旋转并垂直于屏幕。它应该仅作为一条直线可见。(或者它在 45' 处作为倾斜图像)?**

0 投票
1 回答
737 浏览

ios - CGAffineTransformTranslate 在 iOS 3.1.3 中不起作用


我正在尝试将 UIAlertView 从屏幕中心的默认位置移动到顶部。我正在使用下面的代码,它可以在 iOS 4 上运行,但在 3 上却没有。
有人知道吗?

0 投票
2 回答
3900 浏览

iphone - 应用 CGAffineTransformRotate 后如何移动 UIImageView?

我正在构建一个 iPhone 应用程序。我有一个 UIView 包含一组 UIImageView 子类对象。用户可以通过触摸拖动和旋转图像视图。旋转图像视图后,我无法移动它。

为了旋转图像视图,我应用了变换旋转,效果很好。它看起来像这样:

当用户尝试通过触摸移动元素时,问题就会出现。在 touchesBegan:WithEvent: 中,我将起点保存在类变量 startLocation 中:

在 touchesMoved:withEvent: 中,我有以下代码,如果图像视图上没有旋转变换,它就可以很好地工作:

但是如果图像视图上有一个旋转变换,那么图像视图在每个 touchesMoved 事件上都会在屏幕上晃动并很快消失。在调试器中,我观察到 pt 的值变得很可怕。我突然想到我需要改变这一点,我做到了,就像这样:

这工作得更好。我现在可以拖动有关屏幕的图像。但是第一次移动会导致图像在一个方向或另一个方向上摇晃一次,具体取决于变换中的旋转角度和图像视图的尺寸。

如何在没有初始颠簸的情况下移动图像视图?

为什么我不需要转换 startLocation (触摸开始时我捕获的点)?