在 UISegmentedControl
中的段与内容成比例的情况下,widthForSegmentAtIndex
从 viewDidLayoutSubviews
调用时似乎返回 0。无论如何要获得实际宽度? (我正在使用自动布局。)
如果没有,有什么方法可以得到对应于段的 subview ? segmentedControl.subviews[index]
无法可靠地工作。
如果没有办法做到这一点,是否可以使用 UISegmentedControl 的替代方案?
谢谢!
最佳答案
根据我的测试,无论每个单独的段的文本大小如何,段的宽度似乎总是相等的。
CGFloat segmentWidth = segmentedControl.frame.size.width/segmentedControl.numberOfSegments;
编辑
不幸的是,如果 segmentedControl 使用 apportionsSegmentWidthsByContent
,则上述答案无效。在那种情况下,我找不到一种简单的方法来获取段的宽度。
但是,您可以手动获取您感兴趣的片段的文本,然后计算它“应该”多长(取决于您想要两侧的填充量),然后使用该数字并使用 setWidth:forSegmentAtIndex:
方法将段设置为计算出的宽度,然后您就可以确定段的宽度。
关于ios - 有什么方法可以使 UISegmentedControl 中的段宽度与内容成正比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34954222/