在UISegmentedControl中创build两个大小为1的段

我有一个UISegmentedControlstoryboard创build3段。 我想以编程方式添加另一个分段,并使中间2个分段的大小为1个分段。 这里是一个图像来说明:

storyboard

在这里输入图像说明

我想要以编程方式实现:

在这里输入图像说明

这是我试过的:

 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. 1/3的一半不是1/4。 它是1/6。

  2. 您可能需要设置三个分段,并自动设置最后一个以填充余数。

  3. 不要太早运行你的代码 – 如果你这样做,分段控制可能还没有达到最终的框架,所以你的segmentWidth将是错误的。