【发布时间】:2014-09-16 15:30:55
【问题描述】:
通过情节提要,有没有办法设置我的 UISegmentedControl,以便在 FIRST、SECOND、THIRD 段中:FIRST 总是获得一半,而 SECOND 和 THIRD 则按内容大小相互成比例?如果我可以在我的 UISegmentedControl 中添加 UIViews,我可以轻松地做到这一点,但我不能。
【问题讨论】:
标签: ios xcode storyboard uisegmentedcontrol
通过情节提要,有没有办法设置我的 UISegmentedControl,以便在 FIRST、SECOND、THIRD 段中:FIRST 总是获得一半,而 SECOND 和 THIRD 则按内容大小相互成比例?如果我可以在我的 UISegmentedControl 中添加 UIViews,我可以轻松地做到这一点,但我不能。
【问题讨论】:
标签: ios xcode storyboard uisegmentedcontrol
编辑:这实际上可能不是解决方案。至少使用情节提要无法判断每个片段的大小。
如果 UISegmentedControl 上的文本总是相同的,并且您知道整个控件的大小,那么以下应该可以工作:
单击情节提要中的 UISegmentedControl 并转到 Size Inspector。从那里,您可以选择每个段的宽度。您必须做一些简单的数学运算来计算第一段的宽度。
【讨论】:
据我所知,您必须以编程方式执行此操作:
- (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 来代替,这样您就可以使用自动布局的全部功能。 UISegmentedControl 样式是从只有一种屏幕尺寸需要处理的日子遗留下来的。
【讨论】: