【问题标题】:Change UIKit Object Anchor Point Programmatically?以编程方式更改 UIKit 对象锚点?
【发布时间】:2011-11-15 15:20:32
【问题描述】:

我知道您可以在界面生成器中更改 UIKit 对象的原点/锚点,但我该如何以编程方式执行此操作?还是我必须简单地更改位置坐标以适合默认锚点?

【问题讨论】:

    标签: iphone objective-c ipad uikit anchor


    【解决方案1】:

    UIView 没有锚点的概念(与 CALayers 不同)。您可以使用frame 属性或center 属性定位它们。 Interface Builder 伪造了锚点,并将 UIView 的帧坐标实际存储在 nib 文件中。

    【讨论】:

      【解决方案2】:

      如果您确实想更改锚点,只需 #import <QuartzCore/QuartzCore.h> 然后设置视图的锚点:

      [[aView layer] setAnchorPoint:CGPointMake(0.5f, 0.5f)];
      

      下面的链接是关于您可能感兴趣的层的文档:
      http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreAnimation_guide/Articles/Layers.html

      【讨论】:

      • 我刚试过这个,它未能使锚点居中。除了我将aView 更改为我的 UITextField 之外,我确实按照您在上面的示例中所做的操作。有什么想法吗?
      • 每个 UIView 都由 CALayer 支持,但如果您尝试混合 UIView 定位和 CALayer 定位,则会遇到问题。正如您所看到的,事情不会像您预期的那样运行。最好坚持使用 frame 或 center 属性定位 UIView 并适当调整坐标。
      • 锚点默认值为(0.5, 0.5),居中。我给的文档可以帮助你,@Robin 说的是对的。 :) 顺便说一下,通过居中 UITextField 的锚点你想要什么?您可以只设置框架(相对于它的超级视图)来进行布局。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多