【问题标题】:AutoLayout: UIButton hugs bottom UITabBarItemAutoLayout:UIButton 拥抱底部的 UITabBarItem
【发布时间】:2012-11-23 17:47:44
【问题描述】:

在左下角UIViewControllers 视图中,我有一个UIButton (UIButtonTypeInfoDark)。当应用程序在 4S 上运行时,看起来就像您所期望的那样。但是当我在 iPhone 5 上运行该应用程序时,它会停留在原来的位置,而不是“粘”在底部的 UITabBarItem 上。

这是自动布局可以为我处理的事情,还是我必须以编程方式重新定位按钮?注意:我的应用是纵向的,所以我不关心旋转。

提前致谢, 计算机科学

【问题讨论】:

    标签: iphone objective-c ios constraints autolayout


    【解决方案1】:

    几件事。

    1. 确保自动布局已打开(IB 在“文件检查器选项卡”上)
    2. 确保您没有进行任何涉及边界、框架等的更改 - 现在这一切都由自动约束完成。
    3. 确保远离 AutoResizingMask。这将与您的新设置竞争。

    如果这些操作正确,您现在可以布局您的按钮,它会很好用。方法如下。

    1. 将提到的按钮拖到左下角。
    2. 当指南靠近左侧角落时,您会看到弹出的指南,就在您的工具栏上方。
    3. 现在,通过选择按钮并进入“尺寸检查器”选项卡来检查您的约束。
    4. 现在选择按钮和按钮栏。
    5. 通过选择垫子右下角的图形添加新的约束,然后选择中间的图标,看起来像大写的“I”。
    6. 选择“垂直间距”
    7. 您将在约束中看到一个新的约束弹出。选择该新约束并选择“属性检查器”
    8. 保持“关系”相等并选中“标准”复选框。这将使其保持在按钮栏上方的标准高度。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      你可以像这样使用你的 autoresizingMask:

      button.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleRightMargin;
      

      【讨论】:

      • 谢谢伊斯梅尔。我在按钮上设置了autoresizingMask,但是当我在 4S 和 5 之间切换时,它的位置保持不变。另外,您是说UIViewAutoresizingFlexibleBottomMargin 吗?我也试过了——同样的行为。
      • ~BottomMargin 将使其顶部边缘固定在与顶部相同的距离处,并改变它的底部边距(默认行为),而不是 ~TopMargin 应该使它粘在底部.我对自动布局并不完全熟悉,但如果您使用它们,则需要确保将按钮配置为固定在底部。
      • 感谢 Ishmael - 是的,这是我第一次使用 AutoLayout,但似乎无法弄清楚如何使按钮与标签栏保持距离。
      • 阅读一点关于 AutoLayout 的信息,我认为您应该选择您的按钮并转到 Editor > Pin > Bottom Space to Superview
      • 不,这似乎也不行。如果你觉得无聊,可以这样做:在 IB 中创建一个新的UIViewController 并在底部附近放置一个按钮。使用“应用外形尺寸”按钮(位于 IB 工作界面的右下方)更改外形尺寸,您会看到该按钮不会移动(即使您将其固定)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 2017-07-30
      • 1970-01-01
      • 2021-09-29
      • 2020-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多