【问题标题】:Rotate Rectangle Around Its Upper Left Corner围绕其左上角旋转矩形
【发布时间】:2013-03-05 20:40:44
【问题描述】:

只需尝试围绕它的原点或左上角旋转一个矩形,如下所示:

我正在使用以下内容:

panGestureRecognizer.view.transform = CGAffineTransformRotate(panGestureRecognizer.view.transform, (M_PI * angle) / 180);

但矩形有点像在一个大循环中旋转。是否需要进行某种翻译才能使其正常工作?

【问题讨论】:

    标签: iphone ios cocoa-touch geometry cgaffinetransform


    【解决方案1】:

    你只需要设置锚点:https://developer.apple.com/library/mac/#documentation/graphicsimaging/reference/CALayer_class/Introduction/Introduction.html#//apple_ref/occ/instp/CALayer/anchorPoint

    panGestureRecognizer.view.layer.anchorPoint = CGPointMake(0.0, 0.0);
    

    进一步阅读:对于更高级的内容,您可以尝试此处详细介绍的矩阵变换的一些技巧:https://stackoverflow.com/a/8536553/563381

    【讨论】:

    • 谢谢。我确实尝试过这个,但它没有用。可能我还需要设置其他东西吗?
    • 这应该就是你所需要的。并且您制作了与您的预期结果相似的图像来显示实际结果?可能会帮助我更好地了解出了什么问题。
    • 其实正确答案是:CGPointMake(0,0),就是view.layer.anchorPoint(上面没有放layer)。如果您解决了这些问题,则会将答案标记为正确。
    • Opps,抱歉打错了。很高兴你明白了。
    • 另外,必须将 CGPointMake(0,1.0) 更改为 CGPointMake(0,0) 这就是给了我正确响应的原因
    猜你喜欢
    • 1970-01-01
    • 2016-09-19
    • 2021-11-11
    • 2018-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-04
    • 2019-03-07
    相关资源
    最近更新 更多