【问题标题】:Arrange horizontal space between items in a bar using autolayout使用自动布局在条中的项目之间排列水平空间
【发布时间】:2017-07-19 09:51:58
【问题描述】:

我目前有一个这样的视图,我如何设置约束以在所有屏幕尺寸下像 Iphone 7 评论一样显示项目?我已经尝试了很多约束,包括 stackView 但没有用。非常感谢您,祝您有美好的一天。

【问题讨论】:

  • 你可能想要使用 stackview
  • 我试过了,但是好像不太好。完成按钮仍然丢失,我也想知道其他解决方案。
  • @DuyKhanhNguyen 您需要底部图标同样对齐吗?如果它们有其他更好的选项堆栈视图,请尝试提供相等的宽度和高度约束。
  • 你设置了什么约束?这些是在 UIToolbar 中还是在包含视图中只有 5 个 UIButton?

标签: ios uiview autolayout nslayoutconstraint ios-autolayout


【解决方案1】:

你可以在黑色视图中使用五个视图:

第一个视图的约束:

  • superview 的领先空间:0
  • superview 的底部和顶部空间:0
  • 第二个视图的尾随空间:0

第二、第三和第四视图的约束:

  • 左视图前导空间:0
  • superview 的底部和顶部空间:0
  • 右视图的尾随空格:0
  • 与第一视图等高和等高

最后(第 5 个)视图的约束:

  • 左视图的前导空间(第 4 个):0
  • superview 的底部和顶部空间:0
  • superview 的尾随空间:0
  • 与第一视图等高和等高

然后在这些视图中插入您的按钮或元素及其约束(例如水平中心/垂直中心)

【讨论】:

    【解决方案2】:

    使用 UIToolbar,其中包含一个 UIBarButtonSystemItemFlexibleSpace 项目,您可以将其放置在 5 个常规项目之间。

    在 Obj-C 代码中,您会执行以下操作:

    - (void)viewDidLoad
    {
        [super viewDidLoad];
    
        [self.navigationController setToolbarHidden:NO];
    
        UIBarButtonItem* spaceItem1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
                                                                                    target:self
                                                                                    action:nil];
    
        ... create other items ...
    
        self.toolbarItems = @[ item1, spaceItem1, item2, spaceItem2, ... ];
    
        ...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-24
      • 2019-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-04
      相关资源
      最近更新 更多