在 TableView 中给分段控件添加常量
Add constants to segmented controls in TableView
我在 tableView 中添加了一个分段控件。
它横跨了整个屏幕的宽度,如何给它添加左右约束?
故事板中的约束未激活,无法配置。
从外观上看,您已将其添加到 UITableViewController 的 TableHeaderView 中。首先将一个简单的 UIView 作为容器添加到 TableHeaderView 中。您可以将 UISegmentedControl 移动到容器中,此时您将能够定义约束(例如 UISegmentedControl 的前导、尾随、顶部和底部锚点或高度锚点)。
对于容器本身,您必须定义一个高度,确保它可以根据内容的约束适合内容。根据我的经验,TableHeaderViews 在运行时以编程方式更改其高度时效果不佳。然而,这对您当前的情况应该无关紧要。
不要将 UISegmentedControl
直接添加到 tableView
,而是将其添加为 tableHeaderView
。
1. 创建一个单独的 xib
文件并在其中添加一个 UIView
和一个 UISegmentedControl
。添加所需的constraints
。
2. 接下来创建一个 UIView's
子类并将其作为 UIView's
class
添加到 xib
文件中,即
class SegmentView: UIView {
@IBOutlet weak var segmentControl: UISegmentedControl!
}
3. 现在在您的 ViewController
中,添加 SegmentView's
实例作为 tableHeaderView
,即
override func viewDidLoad() {
super.viewDidLoad()
if let view = Bundle.main.loadNibNamed("SegmentView", owner: self, options: nil)?.first as? SegmentView {
//configure your view...
tableView.tableHeaderView = view
}
}
结果:
我在 tableView 中添加了一个分段控件。
它横跨了整个屏幕的宽度,如何给它添加左右约束?
故事板中的约束未激活,无法配置。
从外观上看,您已将其添加到 UITableViewController 的 TableHeaderView 中。首先将一个简单的 UIView 作为容器添加到 TableHeaderView 中。您可以将 UISegmentedControl 移动到容器中,此时您将能够定义约束(例如 UISegmentedControl 的前导、尾随、顶部和底部锚点或高度锚点)。
对于容器本身,您必须定义一个高度,确保它可以根据内容的约束适合内容。根据我的经验,TableHeaderViews 在运行时以编程方式更改其高度时效果不佳。然而,这对您当前的情况应该无关紧要。
不要将 UISegmentedControl
直接添加到 tableView
,而是将其添加为 tableHeaderView
。
1. 创建一个单独的 xib
文件并在其中添加一个 UIView
和一个 UISegmentedControl
。添加所需的constraints
。
2. 接下来创建一个 UIView's
子类并将其作为 UIView's
class
添加到 xib
文件中,即
class SegmentView: UIView {
@IBOutlet weak var segmentControl: UISegmentedControl!
}
3. 现在在您的 ViewController
中,添加 SegmentView's
实例作为 tableHeaderView
,即
override func viewDidLoad() {
super.viewDidLoad()
if let view = Bundle.main.loadNibNamed("SegmentView", owner: self, options: nil)?.first as? SegmentView {
//configure your view...
tableView.tableHeaderView = view
}
}
结果: