ios - UIStackView 高度,内容在中间而不是在顶部
问题描述
我有一个 UIStackview,当它装满一堆东西时,它很好,但是,当它装满 1 或 2(例如)时,它会将它们展开而不是将它们保持在顶部。我做错什么了?
这就是发生的事情。我希望他们处于顶部,并且在其下方没有任何权利。
for i in 0..<self.itemSpecificsArray.count {
let itemSpecificName = UILabel()
let itemSpecificValue = UILabel()
itemSpecificName.textColor = UIColor(red: 236.0 / 255.0, green: 91.0 / 255.0, blue: 110.0 / 255.0, alpha: 1.0)
itemSpecificName.textAlignment = .left
itemSpecificName.font = UIFont.boldSystemFont(ofSize: 18.0)
itemSpecificValue.textColor = UIColor.black
itemSpecificValue.textAlignment = .left
itemSpecificValue.font = UIFont.systemFont(ofSize: 15.0)
print(self.itemSpecificsArray[i].itemSpecificName)
print("** \(self.itemSpecificsArray[i].itemSpecificValue)")
itemSpecificName.text = self.itemSpecificsArray[i].itemSpecificName
itemSpecificValue.text = self.itemSpecificsArray[i].itemSpecificValue
self.mainSectionItemSpecifics.addArrangedSubview(itemSpecificName)
self.mainSectionItemSpecifics.addArrangedSubview(itemSpecificValue)
if (i == self.itemSpecificsArray.count) {
let view = UIView()
self.mainSectionItemSpecifics.addArrangedSubview(view)
}
}
对于每个索引,它都有一个 itemSpecificName 和 itemSpecificValue。如果我需要将这两个标签放在视图中,那么我可以这样做......这可能会解决它,不是吗?
解决方案
UIStackView
想要拉伸其排列的子视图以填充其自己的(堆栈视图的)边界。如果您不希望标签被拉伸,您要么需要更改对 的约束,UIStackView
以便它可以缩小以适合其子项,要么将排列的子视图添加到可以吸收提取空间的堆栈视图中。例如,您可以UIView
在两个标签之后添加一个没有约束的纯文本。自动布局会将堆栈视图边界的额外空间提供给UIView
.
推荐阅读
- ios - Xamarin.Forms Observablecollection 在 ios 设备上引发异常
- android - 如何将目录的内容列出到微调器中?
- selenium - 在哪个注解之后我们可以使用@Override 注解?
- vb.net - How can i allow only positive number in my code
- django - 用于过滤的 Django“或查询 **kwargs”
- c++ - 为什么我的程序无法对整数字符串进行排序?
- javascript - 我正在尝试打开 React Native 应用程序,但我遇到了这个问题,解决办法是什么?
- laravel - 如何在资源控制器的更新路由中传递 id?
- aspnetboilerplate - 如何在 ASPBoilerplate 中调用 Publisher 方法?
- mbed - 在 PlatformIO mbed 中使用 Accelstepper 库时出错