gpt4 book ai didi

ios - CGAffineTransform 旋转大小问题

转载 作者:行者123 更新时间:2023-11-29 13:27:31 26 4
gpt4 key购买 nike

我正在开发一个允许用户旋转时钟指针的应用程序。为此,我正在使用 needle 的 imageview 的 transform 属性:

CGAffineTransform newTrans = CGAffineTransformRotate(initialTransform, -angleDif);
minutesNeedle.transform = newTrans;

为了检测用户的触摸,我必须检测针的空间(分钟或小时的帧)。在这里展示我的问题,旋转图像后看起来图像被拉伸(stretch)并干扰其他图像。 UIView 类文档说,在转换 View 的框架后,您必须使用 center 和 bounds 属性。但是,我不能使用 bounds 属性来检测位于 superview 中的触摸用户。

有没有其他方法可以在不改变帧大小的情况下制作这个动画(我怀疑)。或者我可以在 touchesEnded 方法中调整框架的大小(我试过但没有成功)。请帮助我在那里封锁了一个星期!谢谢

最佳答案

也许我遗漏了什么,但看起来你可以完全避免这种冲突。创建一个单独的 View 来处理触摸,独立于针 View 。在触摸事件中,适当移动针 View 。这个单独的 View 基本上是时钟的大小,并覆盖在其他 View 上,具有清晰的背景。它会有一个带有适当回调的委托(delegate),以便您的 View Controller (或任何拥有针头的东西)可以调整它。

至于回调是什么,我会转发触摸事件,例如:

    - (void)touchReceiverView:(TouchReceiverView *)view didReceiveTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;

关于ios - CGAffineTransform 旋转大小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12755062/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com