【问题标题】:Superview not resizing with subviews超级视图不使用子视图调整大小
【发布时间】:2014-05-07 08:12:50
【问题描述】:

我有一个窗口,可以在其中水平添加两个子视图。在每个子视图中,我放置了一个可变数量的子视图,这些子视图由一个垂直滑块、一个旋转 90 度并放置在滑块左侧的文本字段和另一个文本字段组成,位于滑块下方。滑块子视图的约束在代码中完成,父视图都在 IB 中完成。当我向左侧窗口添加的滑块视图超出子视图的默认大小时,它会水平调整大小并强制窗口的内容视图(和窗口)也水平调整大小。太好了,这正是我想要的。但是,如果我添加的滑块子视图超出了右侧子视图的容量,它们就会被挤压在一起,并且子视图不会像左侧那样展开。我使用将此类转换为支持 NSViews 而不是 UIVews 的代码来布局滑块视图:

UIView+AutoLayout1:https://github.com/jrturton/UIView-Autolayout

左右子视图的约束大致相同。我不明白为什么右视图没有像左视图那样调整大小。

以下是演示问题的示例项目的链接: SliderTest

有人帮我解决这个问题吗? 另外,我认为我的滑块视图可能需要做一些工作: 当使用 setFrame(Center)Rotation 旋转视图时,顶部、右侧、底部和顶部边缘是否保持相同的边缘,或者它们是否反映了旋转视图的新方向? 谢谢

【问题讨论】:

  • 去掉两个子视图之间的约束后,我看到右边的子视图向中心展开。我想这是预期的行为,但我需要正确的子视图向右展开并强制窗口相应地展开。我会继续玩耍和谷歌搜索。

标签: cocoa autolayout


【解决方案1】:

我发现了问题。窗口左视图和右边缘之间的约束固定在 233 而不是 >= 233。我在过去的某个时候遇到过这个问题,因为我正在调整约束以实现所需的行为,只是通过故障排除过程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多