在 UISegmentedControl 中制作 2 个大小为 1 的段
Make 2 segments the size of 1 in UISegmentedControl
我有一个 UISegmentedControl
,在 storyboard
中创建了 3 个片段。我想以编程方式添加另一个段,并使中间 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/3的一半不是1/4。是1/6.
您可能想要设置 三个 段并让最后一个自动设置以填充剩余部分。
不要 运行 你的代码太早 - 如果你这样做,分段控件可能还没有达到它的最终帧,所以你的 segmentWidth
将是错误的。
我有一个 UISegmentedControl
,在 storyboard
中创建了 3 个片段。我想以编程方式添加另一个段,并使中间 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/3的一半不是1/4。是1/6.
您可能想要设置 三个 段并让最后一个自动设置以填充剩余部分。
不要 运行 你的代码太早 - 如果你这样做,分段控件可能还没有达到它的最终帧,所以你的
segmentWidth
将是错误的。