【问题标题】:How to set the height of UISegmentedControl subclass without using auto layout?如何在不使用自动布局的情况下设置 UISegmentedControl 子类的高度?
【发布时间】:2019-05-20 11:46:55
【问题描述】:

我创建了一个UISegmentedControl 子类,我想将其用作UITableView 的部分标题视图。

我希望自定义 UISegmentedControl 子类的高度为 50pt。

我知道我可以为此创建一个高度约束。但是,在设置了高度约束之后,如果这个分段控件被用作 table view 的 section header,则会显示自动布局错误(参见question)。

我尝试通过调用具有适当高度的 init(frame:) 方法来设置高度,但这没有效果。

有没有办法在不使用自动布局的情况下设置UISegmentedControl 子类的高度?

【问题讨论】:

    标签: ios uikit uisegmentedcontrol


    【解决方案1】:

    您可以简单地使用framessectionHeaderView 中设置UISegmentedControlsizeposition,即

    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let view = UIView()
        let segmentedControl = UISegmentedControl(frame: CGRect(x: 10, y: 10, width: 200, height: 50))
        segmentedControl.insertSegment(withTitle: "First", at: 0, animated: false)
        segmentedControl.insertSegment(withTitle: "Second", at: 1, animated: false)
        segmentedControl.selectedSegmentIndex = 0
        view.addSubview(segmentedControl)
        return view
    }
    
    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return 70
    }
    

    截图:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-25
      • 2016-04-25
      • 1970-01-01
      • 1970-01-01
      • 2015-01-19
      • 2012-09-24
      • 2019-09-22
      相关资源
      最近更新 更多