在UISegmentedControl中将2个段设置为1

时间:2015-05-12 00:41:53

标签: ios objective-c uisegmentedcontrol

我有UISegmentedControlstoryboard中创建了3个细分受众群。我想以编程方式添加另一个段,并使中间2段的大小为1段。这是一张图片来说明:

storyboard

enter image description here

我想以编程方式实现的目标:

enter image description here

这就是我的尝试:

CGFloat segmentWidth = self.segment.frame.size.width;

[self.segment insertSegmentWithTitle:@"titleName" atIndex:2 animated:NO];

[self.segment setWidth:segmentWidth / 4 forSegmentAtIndex:1];
[self.segment setWidth:segmentWidth / 4 forSegmentAtIndex:2];

[self.segment setWidth:segmentWidth / 3 forSegmentAtIndex:0];
[self.segment setWidth:segmentWidth / 3 forSegmentAtIndex:3];

它并没有给我带来理想的效果。宽度很奇怪。如何让宽度像上面的第二张图片一样?

1 个答案:

答案 0 :(得分:0)

  1. 1/3的一半不是1/4。这是1/6。

  2. 您可能希望设置三个段并自动设置最后一个以填充剩余部分。

  3. 不要过早运行代码 - 如果这样做,分段控件可能尚未达到最终帧,因此segmentWidth将出错。