UISegmentedControl没有圆角?

Rob*_*dan 5 iphone cocoa-touch uisegmentedcontrol uikit

有没有办法摆脱UISegmentedControl的圆角或它是默认行为?

Gre*_*mbs 20

有一些非常容易的事情可以让你自己摆脱UISegmentedControl上的圆形垃圾...将样式改为"7".我不是在开玩笑.我刚想出来了:

    // Magic number ... (it's cheating, but it works)
  mySegmentedBar.segmentedControlStyle = 7;  
Run Code Online (Sandbox Code Playgroud)

这与他们在UISearchBar的范围栏中使用的控制样式相同,如下所示:

带范围的搜索栏

但是如果有人只想要范围栏而不进行搜索,那么他们通常会使用UISegmentedControl垃圾(带圆角):

BarStyle

或者更糟糕的是......

BezeledStyle

值得庆幸的是,通过切换到bar样式"7",我们得到了停止栏的精确外观,没有所有子类和drawRect hackery:

在此输入图像描述

  • 在iOS 7中不推荐使用 (5认同)
  • 这被认为是私有API吗? (4认同)

Dim*_*ris 5

不,没有API可让您控制细分的布局。

您可能会尝试查看UISegmentedControl的view.subviews并尝试根据需要进行更改。但是从个人经验来看,我不建议这样做。如果Apple将来更改了订单,则您的应用可能会崩溃。最简单的方法是创建充当切换按钮的自定义UIButton,并像UISegmentedControls一样控制它们(有关切换按钮,请参见如何将UIButton用作切换开关)。