swift - UIStackView 内的项目溢出
问题描述
我以UIStackView
编程方式创建了一个内部放置UITextView
的 s。
当UITextView
s 的数量超过 5 时,框开始溢出屏幕。这是情况的屏幕截图:
这是代码:
let stackview = UIStackView(arrangedSubviews: letterBoxes)
stackview.axis = .horizontal
stackview.spacing = 10
stackview.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(stackview)
stackview.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
stackview.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
我错过了什么?谢谢你
解决方案
也像这样添加.leading
和.trailing
约束
view.addConstraint(NSLayoutConstraint(item: stackview, attribute: .trailing, relatedBy: .equal, toItem: view, attribute: .trailing, multiplier: 1, constant: 0))
view.addConstraint(NSLayoutConstraint(item: stackview, attribute: .leading, relatedBy: .equal, toItem: view, attribute: .leading, multiplier: 1, constant: 0))
所以完整的代码如下所示:
let stackview = UIStackView(arrangedSubviews: letterBoxes)
stackview.axis = .horizontal
stackview.spacing = 10
stackview.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(stackview)
stackview.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
stackview.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
view.addConstraint(NSLayoutConstraint(item: stackview, attribute: .trailing, relatedBy: .equal, toItem: view, attribute: .trailing, multiplier: 1, constant: 0))
view.addConstraint(NSLayoutConstraint(item: stackview, attribute: .leading, relatedBy: .equal, toItem: view, attribute: .leading, multiplier: 1, constant: 0))
推荐阅读
- sql - 使用 XSD 架构检查 XML
- c++ - 从 C++ 中的 std::function 访问模板化 lambda
- firebase - 在 Firebase 中查询 Document 时出现 RangeError
- arrays - 如何在本机反应中将数据推送到状态数组
- amazon-web-services - 将值从父堆栈传递到 Cloudformation 的嵌套堆栈
- c# - 默认主体对象不能设置两次
- react-native - 我可以在 React Native 中用陀螺仪掷骰子吗?
- javascript - 使用 XSLT 或任何其他方法的 XML 到 HTML 表
- javascript - 如何自动关闭自定义的 vue toast 组件
- xamarin.forms - 如何在 Xamarin.Forms 中使用 PKPaymentButton