UISegmentedControl的3个段中的第一个占据宽度的一半

时间:2014-07-24 21:43:51

标签: ios xcode storyboard uisegmentedcontrol

通过故事板,有没有办法设置我的UISegmentedControl,以便段FIRST,SECOND,THIRD:FIRST总是得到一半,而SECOND和THIRD按内容大小相互比例?如果我可以在我的UISegmentedControl中添加UIViews,我可以轻松地做到这一点,但我不能。

2 个答案:

答案 0 :(得分:1)

编辑:这实际上可能不是解决方案。我们无法分辨每个细分受众群的大小,至少使用故事板。

如果UISegmentedControl上的文本总是相同,并且您知道整个控件的大小,则以下内容应该有效:

单击Storyboard中的UISegmentedControl并转到Size Inspector。从那里,您可以选择每个细分的宽度。您将不得不做一些简单的数学运算来计算第一段的宽度。

enter image description here

答案 1 :(得分:0)

据我所知,你必须以编程方式执行此操作:

- (void)setWidth:(CGFloat)width forSegmentAtIndex:(NSUInteger)segment

这会产生类似

的结果
- (void)viewWillAppear;
{
    float firstWidth = self.view.frame.size.width / 2;
    [self.segmentedControl setWidth:firstWidth forSegmentAtIndex:0];
    // The others should resize automatically
}

我建议您完全跳过分段视图,而不是使用UIViews,这样您就可以使用Auto Layouts的全部功能。 UISegmentedControl样式从只有一个屏幕尺寸来处理的日子开始有点遗留。