如何在UIStackView中添加前导填充添加
这是我的设置:我有一个UIScrollView
与领先的,顶部,试验边设置为0.在这里我添加一个UIStackView
这个约束:
stackView.centerYAnchor.constraintEqualToAnchor(selectedContactsScrollView.centerYAnchor).active = true stackView.leadingAnchor.constraintEqualToAnchor(selectedContactsScrollView.leadingAnchor).active = true
在堆栈视图内添加一些视图。
我的问题是,由于约束,添加到堆栈视图的第一个视图也将有前沿= 0。
有什么办法,我可以添加一些填充到第一个视图? 不调整滚动视图约束。
你提供的解决scheme不会在你的UIStackView里为你的视图添加填充(就像你想要的那样),但是它为UIStackView添加了一个前导。
一个解决scheme可能是在原来的UIStackView中添加另一个UIStackView,并将其引导到这个新的UIStackVIew。 然后,将您的意见添加到这个新的UIStackView。
提示,你可以完全使用Interface Builder来完成。 换句话说,不需要为它编写代码。
当isLayoutMarginsRelativeArrangement
属性为true时,堆栈视图将布置其布局视图相对于其布局边距。
stackView.layoutMargins = UIEdgeInsets(top: 0, left: 20, bottom: 0, right: 20) stackView.isLayoutMarginsRelativeArrangement = true
但是它会影响堆栈视图中所有排列的视图。 如果你只想为一个排列的视图填充,你需要使用嵌套的UIStackView
我发现约束不起作用,或者他们的工作有点奇怪(如果我添加领先/尾随约束select图像stackview,这也增加了导致collectionview,但不添加尾随;这是肯定的冲突)。
所以你可以为stackview中的所有views / stackviews做布局边距。
select大小检查器 – > 布局边距 ( 显式 ) – >添加你的填充
什么对我来说是添加到堆栈查看另一个UIView只是一个间隔(工作至less与stackView.distribution = .Fill):
let spacerView = UIView(frame: CGRect(x: 0, y: 0, width: 10, height: 10)) stackView.addArrangedSubview(spacerView) stackView.addArrangedSubview(viewThatNeedsSpaceBeforeIt) stackView.addArrangedSubview(NextView)...
使用间距来隔开stackview中的元素:
let bottomStackView = UIStackView() bottomStackView.alignment = .Center bottomStackView.axis = .Horizontal bottomStackView.spacing = 8.0
swift 3:你只需要设置偏移量:
firstView.leadingAnchor.constraint(equalTo: parentView.leadingAnchor, constant: 200).isActive = true
确定这个约束设置后,您parentView.addArrangdSubView(firstView)
如果您只需要填充,那么您可以将堆栈视图的alignment方式设置为“拖尾”,然后您可以自由地为其包含的每个子视图指定唯一的Leading约束。
作为奖励,您还可以将堆栈视图的alignment方式设置为“中心”,然后可以使用前导约束和/或尾随约束来在每个项目的两侧填充自己的填充。
看来解决scheme非常简单。 代替:
stackView.leadingAnchor.constraintEqualToAnchor(selectedContactsScrollView.leadingAnchor).active = true
我刚刚写道:
stackView.leadingAnchor.constraintEqualToAnchor(selectedContactsScrollView.leadingAnchor, constant: 15).active = true
- 〜/ Library / Developer / Xcode / iOS DeviceSupport / <iOS版本> / Symbols / System / Library消耗我的Mac磁盘空间14 GB
- 从导航堆栈中删除viewcontrollers
- iPad Safari – 使键盘消失
- iOS-运行/debugging/安装通过WiFi构build
- UIScrollView与居中的UIImageView,如照片应用程序
- iPhone模拟器 – 模拟一个缓慢的连接?
- 故事板警告:原型表单元格必须具有重用标识符
- 正确使用intrinsicContentSize和sizeThatFits:在具有自动布局的UIView子类上
- 如何处理大型的Swift项目?