如何在不使用自动布局的情况下设置 UISegmentedControl 子类的高度?
Posted
技术标签:
【中文标题】如何在不使用自动布局的情况下设置 UISegmentedControl 子类的高度?【英文标题】:How to set the height of UISegmentedControl subclass without using auto layout? 【发布时间】:2019-05-20 11:46:55 【问题描述】:我创建了一个UISegmentedControl
子类,我想将其用作UITableView
的部分标题视图。
我希望自定义 UISegmentedControl
子类的高度为 50pt。
我知道我可以为此创建一个高度约束。但是,在设置了高度约束之后,如果这个分段控件被用作 table view 的 section header,则会显示自动布局错误(参见question)。
我尝试通过调用具有适当高度的 init(frame:) 方法来设置高度,但这没有效果。
有没有办法在不使用自动布局的情况下设置UISegmentedControl
子类的高度?
【问题讨论】:
【参考方案1】:您可以简单地使用frames
在sectionHeaderView
中设置UISegmentedControl
的size
和position
,即
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
截图:
【讨论】:
以上是关于如何在不使用自动布局的情况下设置 UISegmentedControl 子类的高度?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用自动收缩的情况下使用不同 iPhone 尺寸的自动布局更改字体大小 [重复]
如何让 UICollectionView 在不离开屏幕的情况下使用自动布局填充其包含滚动视图的宽度?
如何在不使用自动布局的情况下以 XIB/故事板大小查看手机尺寸
调整 UIButton 宽度/高度 (iOS) - 如何在不禁用自动布局的情况下解决?