如何更改UISegmentedControl的分隔符的高度

时间:2018-01-27 16:24:15

标签: ios swift uisegmentedcontrol

我在我的项目中使用UISegmentedControl,我需要更改UISegmentedControl中的分隔符高度。

怎么办?

首先,我知道我们可以更改分配器的颜色。

self.setDividerImage(selectedBorderImage, forLeftSegmentState: .normal, rightSegmentState: .selected, barMetrics: .default)

但我需要改变分隔线的高度。

1 个答案:

答案 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)
      }