Swift 向TableView中的分段控件添加常量
我在tableView中添加了一个分段控件 它跨越了整个屏幕的宽度,如何在左右两侧添加约束Swift 向TableView中的分段控件添加常量,swift,xcode,uitableview,uisegmentedcontrol,Swift,Xcode,Uitableview,Uisegmentedcontrol,我在tableView中添加了一个分段控件 它跨越了整个屏幕的宽度,如何在左右两侧添加约束 在序列图像板中,约束未处于活动状态,因此无法对其进行配置。从外观上看,您已将其添加到UITableViewController的TableHeaderView中。首先将一个简单的UIView作为容器添加到TableHeaderView中。您可以将UISegmentedControl移动到容器中,此时您可以定义约束(例如UISegmentedControl的前导、尾随、顶部和底部锚定或高度锚定) 对于容器本
在序列图像板中,约束未处于活动状态,因此无法对其进行配置。从外观上看,您已将其添加到UITableViewController的TableHeaderView中。首先将一个简单的UIView作为容器添加到TableHeaderView中。您可以将UISegmentedControl移动到容器中,此时您可以定义约束(例如UISegmentedControl的前导、尾随、顶部和底部锚定或高度锚定)
对于容器本身,您必须定义一个高度,确保它能够根据内容的约束来适应内容。根据我的经验,TableHeaderViews在运行时以编程方式更改其高度时效果不佳。但是,这对于您当前的场景来说并不重要。与其将
UISegmentedControl
直接添加到tableView
,不如将其添加为tableHeaderView
1.创建一个单独的xib
文件,并添加一个UIView
,其中包含UISegmentedControl
。向其添加所需的约束
2.接下来创建一个UIView的
子类,并将其作为UIView的
类添加到xib
文件中,即
class SegmentView: UIView {
@IBOutlet weak var segmentControl: UISegmentedControl!
}
3.现在在您的视图控制器中,添加分段视图的
实例作为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中添加了segmentControl?是的,您无法在那里给出约束。是否希望segmentControl成为tableView的一部分?有这样的具体要求吗?