gpt4 book ai didi

iphone - 如何相对于任何点(除了其中心)旋转 UIImageView?

转载 作者:行者123 更新时间:2023-12-03 18:30:20 28 4
gpt4 key购买 nike

默认情况下,UIImageView 将仅绕其中心旋转。如何让它围绕图像中的任何其他点旋转?

最佳答案

实现此目的的一种方法是更改​​ UIImageView 底层的 anchor 并围绕其旋转。您可以使用类似以下内容更改旋转点:

imageView.layer.anchorPoint = CGPointMake(0.25, 0.25);

anchorPoint 根据图层内的相对坐标来定义。也就是说,(0,0) 是图层的左上角(在 iPhone 上,UIView 图层翻转了 Y 坐标),(1,1) 是右下角。

移动 anchor 可能会移动您的图像,因此您可能需要随后调整其位置。

要围绕新 anchor 旋转图像图层,您可以使用如下所示的内容更改图层的 CATransform3D 结构:

CATransform3D rotatedTransform = imageView.layer.transform;
rotatedTransform = CATransform3DRotate(rotatedTransform, 60.0 * M_PI / 180.0, 0.0f, 0.0f, 1.0f);
imageView.layer.transform = rotatedTransform;

此示例围绕 anchor 增量旋转 60 度。

默认情况下,对图层的所有更改都会有动画效果。您可以通过将对这些属性的更改包含在 CATransaction 中来禁用此动画,如下所示:

[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];

// Code for changes here

[CATransaction commit];

关于iphone - 如何相对于任何点(除了其中心)旋转 UIImageView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/839296/

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