【问题标题】:Resetting the origin of a transformed UIView descends into craziness重置转换后的 UIView 的原点会变得疯狂
【发布时间】:2010-11-06 02:02:18
【问题描述】:

我使用 [UIView transform:] 旋转/缩放 UIVIew,效果很好。但是,一旦我更改视图的框架原点,即使我没有执行任何进一步的 CGAffineTransforms,视图的内容也会开始“奇怪”地缩放。

为什么会发生这种情况?如何预防?

更新 1:

文档建议框架在转换后无效。我可以通过它的“中心”属性来移动视图吗?

更新 2:

设置视图中心确实允许我在应用转换后成功转换视图。

【问题讨论】:

    标签: iphone uiview core-graphics


    【解决方案1】:

    我可以通过它的“中心”属性来移动视图吗?

    The documentationcenter 属性定义为:

    框架的中心。

    然后说:

    中心在其父视图的坐标系中指定。

    我会试试的。

    【讨论】:

      【解决方案2】:

      来自UIViewdocs

      变换:

      警告:如果此属性不是恒等变换,则 框架属性未定义并且 因此应该被忽略。

      center 属性只是一种真正重置框架原点的便捷方法。

      编辑:附加到回答评论:

      如果您正在使用转换属性并想要重新定位您的视图,您必须使用以下方法将转换连接到您的转换:

      view.transform = CGAffineTransformTranslate(view.transform, tx, tx);
      

      【讨论】:

      • 我是哪种情况 - 如何重新定位视图?
      • 我确实尝试使用仿射变换来翻译视图,但这会带来很多复杂性,需要我操纵视图锚点。
      猜你喜欢
      • 1970-01-01
      • 2018-08-22
      • 2011-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-25
      • 2021-02-13
      相关资源
      最近更新 更多