【问题标题】:Position View within Container programmatically以编程方式在容器中定位视图
【发布时间】:2012-10-15 23:01:29
【问题描述】:

好的,这就是我的情况:

  • 我有一个带有可变边界的视图(实际上是 NSBox)(我正在以编程方式更改它们)
  • NSBox 中,我们有另一个视图(NSTextField)。

我想要做的是能够以编程方式相对于父视图定位子视图。

例如:

  • 居中
  • 左上角
  • 右上角
  • 左下
  • 右下

是否有任何可可友好的方式来实现这一目标?

有什么想法吗?

【问题讨论】:

    标签: objective-c cocoa nsview


    【解决方案1】:

    您需要计算子视图相对于NSBox 的框架,然后使用subview.frame = rect;。恐怕没有捷径可走。

    【讨论】:

    • 我认为这并不完全正确 - 在更高版本的 OS X 上,您可以使用自动布局,而不是直接操作框架。
    • @trojanfoe 这是一个很好的问题:它可以以编程方式使用吗?如果这是真的,那绝对是惊人的。 :-)
    • 是的,您可以使用可视格式语言,并以编程方式添加/删除它们。尽管如果您之前没有使用过自动布局,那么您可能需要一段时间才能将其包裹起来。绝对值得观看 WWDC 视频来掌握 VFL,它并不完全直观:developer.apple.com/library/mac/#documentation/UserExperience/…
    【解决方案2】:

    您可以查看 NSLayoutConstraint (apple docs) -- 和 see my answer here 以获取使用此类的示例。制作一种方便的方法来将约束设置为“右上角”或“中心”或其他任何内容都非常容易。

    【讨论】:

      猜你喜欢
      • 2012-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-05
      • 2013-10-09
      • 2016-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多