我在我的项目中使用UISegmentedControl,我需要更改UISegmentedControl中的分隔符高度。
怎么办?
首先,我知道我们可以更改分配器的颜色。
self.setDividerImage(selectedBorderImage, forLeftSegmentState: .normal, rightSegmentState: .selected, barMetrics: .default)
但我需要改变分隔线的高度。
答案 0 :(得分:0)
嗯,可以通过编写其自定义来实现。首先,您需要将 UIImage()空传递给分隔符
self.setDividerImage(UIImage(), forLeftSegmentState: .normal, rightSegmentState: .normal, barMetrics: .default)
然后为分隔符创建视图,为其指定大小,并将其添加为 segmentControl 的子视图。要计算分隔符的位置,您需要在布局完成后进行。
var constant: CGFloat = 0
guard let first = self.subviews.first else { return }
#warning("Implementation Custom can be deprecated in the years")
if #available(iOS 13.0, *) {
constant = first.frame.width
} else {
constant = first.frame.minX
}
separator?.removeFromSuperview()
separator = UIView(frame: CGRect(x: constant, y: 5, width: 1, height: 30))
separator?.backgroundColor = .black
self.addSubview(separator.unsafelyUnwrapped)
}