使用方angular的UISegmentedControl

我想修改一个子类UISegmentedControl删除圆angular。 我似乎无法设置cornerRadius。 使SegmentedControl比屏幕更宽(并因此“切掉”angular落)不是一种select,因为我有4或5段,然后它们的大小会变化。

有没有办法做到这一点?

谢谢

你可以设置段的宽度(使用setWidth:forSegmentAtIndex:),这样你就可以很容易地使左右两端的区段比其他的更大(比如说大10px),然后你可以从任一端裁剪10px,并有方形的angular落。 您不必使其大于屏幕宽度,而是将其放在UIView中,然后使用它裁剪两端。

另一方面,只需使用UIControl中的一组自定义UIButton就可以制作自己的分段控件。

要使angular落正方形使用以下代码:

segmentContrl.layer.borderColor=*anycolor*.CGColor; segmentContrl.layer.cornerRadius = 0.0; segmentContrl.layer.borderWidth = 1.5f; 

另一种方法是,如果“裁剪”第一个和最后一个部分的部分是有问题的,则可能是裁剪整个第一个和最后一个部分(您已经制作了虚拟未使用的部分)。 这样,您仍然可以为每个细分市场保留一个相同的尺寸。

只需使用内置的自定义方法,并为每个段状态设置一个背景图像。 这将完全覆盖边框。 如果背景图像是正方形的,那么你的分割控件将呈现方形。 对于要自定义的每个段状态,请使用以下代码。

[segmentedControl setBackgroundImage:[UIImage imageNamed:@"square-background-image-selected"] forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];

在界面构build器中完成此操作的另一种方法是:

将一个UIView对象拖到你的UIViewController,这可能是你UIView的子视图。

拖动一个UISegmentedControl作为你UIView的子视图。 分段控件现在应该在列表UIViewController对象中缩进。 (见下面的截图)。

调整SegementedControl的大小,使其“框架超出你的UIView对象的边界。 在我的情况下,我将SegementedControl的框架设置为X = -10,并将SegementedControl的宽度加上+20,使得分割控件的总宽度为20,然后大于UIView对象。 (希望下面的屏幕截图有帮助)。

我还调整了UIView对象和SegmentedControl的以下设置:UIView:检查剪辑子视图,取消选中AutoResize子视图。 SegementedControl:取消选中“剪辑子视图”,取消选中“AutoResize子视图”。

在这里输入图像说明