Yon*_*Pao 8 ios swift uistackview
我正在尝试将UIStackview中的项目水平对齐到左侧.
无论如何以编程方式执行此操作?我试图通过故事板这样做,但没有成功.出于某种原因,UIStackView中的项目居中.
sht*_*kgm 13
如果您将StackView设置轴属性用于"水平",我认为您无法将其对齐到左侧.
但有一种方法可以让它在视觉上留下.
像这样
stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
stackView.trailingAnchor.constraint(greaterThanOrEqualTo: view.trailingAnchor).isActive = true
Run Code Online (Sandbox Code Playgroud)
Ank*_*rya 10
尝试在您的堆栈视图中添加一个空间视图,像这样
// To Make Our Buttons aligned to left We have added one spacer view
UIButton *spacerButton = [[UIButton alloc] init];
[spacerButton setContentHuggingPriority:UILayoutPriorityFittingSizeLevel forAxis:UILayoutConstraintAxisHorizontal];
[spacerButton setContentCompressionResistancePriority:UILayoutPriorityFittingSizeLevel forAxis:UILayoutConstraintAxisHorizontal];
[self.buttonsStackView addArrangedSubview:spacerButton];
Run Code Online (Sandbox Code Playgroud)
和做
self.buttonsStackView.distribution = UIStackViewDistributionFill;
Run Code Online (Sandbox Code Playgroud)
感谢@Ankit Maurya,提供了 swift 示例的解决方案
let stackView = UIStackView()
stackView.axis = .horizontal
stackView.distribution = .fill
let spacer = UIView()
spacer.isUserInteractionEnabled = false
spacer.setContentHuggingPriority(.fittingSizeLevel, for: .horizontal)
spacer.setContentCompressionResistancePriority(.fittingSizeLevel, for: .horizontal)
// stackView.addArrangedSubview.... any u need
stackView.addArrangedSubview(spacer)
Run Code Online (Sandbox Code Playgroud)
例子:
Swift 4.2 + iOS 12.1测试:
let stackView: UIStackView = UIStackView(frame: .zero)
stackView.translatesAutoresizingMaskIntoConstraints = false
stackView.axis = .vertical
stackView.alignment = .leading // <- aligns each of your items to the left.
// further setup + setup constraints
// ...
Run Code Online (Sandbox Code Playgroud)
使用该UIStackView.alignment财产。
参考:https ://developer.apple.com/reference/uikit/uistackview/1616243-alignment
| 归档时间: |
|
| 查看次数: |
7790 次 |
| 最近记录: |