簡體   English   中英

如何在不使用自動布局的情況下設置UISegmentedControl子類的高度?

[英]How to set the height of UISegmentedControl subclass without using auto layout?

我創建了一個UISegmentedControl子類,我想將其用作UITableView的節頭視圖。

我希望自定義UISegmentedControl子類的高度為50pt。

我知道我可以為此創建一個高度約束。 但是,在設置高度約束后,如果將此分段控件用作表視圖的節頭,則會顯示自動布局錯誤(請參閱問題 )。

我嘗試通過調用具有適當高度的init(frame :)方法來設置高度,但這沒有任何效果。

有沒有辦法在不使用自動布局的情況下設置UISegmentedControl子類的高度?

您可以簡單地使用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
}

截圖:

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM