【问题标题】:CGAffineTransformation set the anchor?CGAffineTransformation 设置锚点?
【发布时间】:2011-05-30 23:19:50
【问题描述】:

我对某事感到好奇。在我的应用程序中,我正在运行一个动画,其中视图被调整了一点。我正在创建这样的转换:

CGAffineTransform resize = CGAffineTransformMakeScale(0.8, 0.8);

但是,当我将此转换应用于我的视图并观察它运行时,它会从顶部调整大小并向底部缩小。我想要的是它在所有方面均匀调整大小并向中心收缩,就好像“锚点”在中心一样。你知道我在说什么?这可能吗?

【问题讨论】:

    标签: iphone cgaffinetransform


    【解决方案1】:

    首先将 Quartz 框架添加到你的项目中并导入 Quartz 头文件

    #import <QuartzCore/QuartzCore.h>
    

    然后你可以像这样设置视图的锚点

    myView.layer.anchorPoint = CGPointMake(0, 0);
    

    AnchorPoint 点是介于 0 和 1 之间的值。0,0 是 iPhone 的左上角。

    【讨论】:

    • 如果它在 0-1 之间,那么中心是什么?
    • 嗯,问题是我不是说窗口的中心,我的意思是我想让窗口调整到自身的中心。它实际上从中心偏移了很多。不过,感谢您的帮助!
    • 这就是应该做的。将anchorPoint设置为0.5,0.5表示图层的中心,如果不调整大小,应该和你的视图一样大。但我很高兴你找到了解决方案 :)
    【解决方案2】:

    首先应用 CGAffineTransformMakeTranslation 将原点移动到中心 -- 使用 CGAffineTransformConcat 将它们合成为单个变换

    【讨论】:

      猜你喜欢
      • 2018-02-27
      • 2011-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-07
      • 1970-01-01
      • 2012-02-04
      相关资源
      最近更新 更多