如何更改 UISegmentedControl 的高度?
How to change the height of the UISegmentedControl?
我在 UITableView
中使用 UISegmentedControl
如下-
let segmentedControl = UISegmentedControl(items: ["Segment1", "Segment2"])
tableView.tableHeaderView = segmentedControl
以上代码按预期工作。我想更改 UISegmentedControl
的高度。我尝试在 UISegmentedControl
上设置高度限制,如下所示-
let segmentedControl = UISegmentedControl(items: ["Segment1", "Segment2"])
segmentedControl.translatesAutoresizingMaskIntoConstraints = false
segmentedControl.heightAnchor.constraint(equalToConstant: 50).isActive = true
tableView.tableHeaderView = segmentedControl
当上述代码为运行时,UISegmentedControl
的高度设置为预期的自定义高度。但是,UISegmentedControl
的前缘和后缘不会与 UITableView
的前缘和后缘对齐。
我还尝试创建一个自定义 UISegmentedControl
来指定 UISegmentedControl
的高度而不设置高度限制,如下所示-
class CustomSegmentedControl: UISegmentedControl {
override var intrinsicContentSize: CGSize {
return CGSize(width: super.intrinsicContentSize.width, height: 50)
}
}
以上代码没有按预期工作。谁能指出如何设置 UISegmentedControl
的高度,以便它在 UITableView
中使用时显示为预期?
只需将 frame
设置为 tableView.tableHeaderView
。不要使用约束。
tableView.tableHeaderView?.frame.size.height = 50
通过设置 segmentedControl.translatesAutoresizingMaskIntoConstraints = false
您将失去默认约束。
如果您对分段控件的外观和布局感到满意,只想更改其高度,请尝试以下方法:
// probably in
override func viewDidLoad() {
super.viewDidLoad()
let segmentedControl = UISegmentedControl(items: ["Segment1", "Segment2"])
segmentedControl.frame.size.height = 50.0
tableView.tableHeaderView = segmentedControl
}
同样的问题:
iOS: change the height of UISegmentedcontrol
顺便说一句,您还可以通过更改视图转换来更改比例。
var segmentedControl = UISegmentedControl(frame: CGRect(x: 0, y: 0, width: w, height: h))
segmentedControl.transform = CGAffineTransform(scaleX: x, y: y)
我在 UITableView
中使用 UISegmentedControl
如下-
let segmentedControl = UISegmentedControl(items: ["Segment1", "Segment2"])
tableView.tableHeaderView = segmentedControl
以上代码按预期工作。我想更改 UISegmentedControl
的高度。我尝试在 UISegmentedControl
上设置高度限制,如下所示-
let segmentedControl = UISegmentedControl(items: ["Segment1", "Segment2"])
segmentedControl.translatesAutoresizingMaskIntoConstraints = false
segmentedControl.heightAnchor.constraint(equalToConstant: 50).isActive = true
tableView.tableHeaderView = segmentedControl
当上述代码为运行时,UISegmentedControl
的高度设置为预期的自定义高度。但是,UISegmentedControl
的前缘和后缘不会与 UITableView
的前缘和后缘对齐。
我还尝试创建一个自定义 UISegmentedControl
来指定 UISegmentedControl
的高度而不设置高度限制,如下所示-
class CustomSegmentedControl: UISegmentedControl {
override var intrinsicContentSize: CGSize {
return CGSize(width: super.intrinsicContentSize.width, height: 50)
}
}
以上代码没有按预期工作。谁能指出如何设置 UISegmentedControl
的高度,以便它在 UITableView
中使用时显示为预期?
只需将 frame
设置为 tableView.tableHeaderView
。不要使用约束。
tableView.tableHeaderView?.frame.size.height = 50
通过设置 segmentedControl.translatesAutoresizingMaskIntoConstraints = false
您将失去默认约束。
如果您对分段控件的外观和布局感到满意,只想更改其高度,请尝试以下方法:
// probably in
override func viewDidLoad() {
super.viewDidLoad()
let segmentedControl = UISegmentedControl(items: ["Segment1", "Segment2"])
segmentedControl.frame.size.height = 50.0
tableView.tableHeaderView = segmentedControl
}
同样的问题: iOS: change the height of UISegmentedcontrol
顺便说一句,您还可以通过更改视图转换来更改比例。
var segmentedControl = UISegmentedControl(frame: CGRect(x: 0, y: 0, width: w, height: h))
segmentedControl.transform = CGAffineTransform(scaleX: x, y: y)