10 iphone cocoa-touch core-animation uikit
默认情况下,UIImageView将仅围绕其中心旋转.如何让它围绕图像中的任何其他点旋转?
Bra*_*son 18
一种方法是通过更改UIImageView底层的anchorPoint并围绕它旋转.您可以使用以下内容更改旋转点:
imageView.layer.anchorPoint = CGPointMake(0.25, 0.25);
Run Code Online (Sandbox Code Playgroud)
anchorPoint是根据图层内的相对坐标定义的.也就是说,(0,0)是图层的左上角(在iPhone上,UIView图层翻转Y坐标),(1,1)是右下角.
移动anchorPoint可能会移动您的图像,因此您可能需要在之后调整其位置.
要围绕该新锚点旋转图像的图层,可以使用以下内容更改图层的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;
Run Code Online (Sandbox Code Playgroud)
此示例围绕锚点进行60度的增量旋转.
默认情况下,对图层的所有更改都进行动画处理.您可以通过将更改包含在CATransaction中来禁用此动画,如下所示:
[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];
// Code for changes here
[CATransaction commit];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17563 次 |
| 最近记录: |