如何改变UISegmentedControl的圆angular半径?
是否有可能改变UISegmentedControl的圆angular半径? 我尝试了下面的方法来改变UIView的圆angular半径。
self.segmentedControl.layer.cornerRadius = 15.0; self.segmentedControl.layer.masksToBounds = YES;
这不起作用,因为你可以看到它只是切断了UISegmentedControl的angular落。
谢谢!
这应该工作:
self.segmentedControl.layer.cornerRadius = 15.0; self.segmentedControl.layer.borderColor = [UIColor whiteColor].CGColor; self.segmentedControl.layer.borderWidth = 1.0f; self.segmentedControl.layer.masksToBounds = YES;
您需要在设置cornerRadius后指定边框。
将UISegmentedControlembedded到UIView中,并为UIView设置圆angular半径。
Objective-C的
outerView.layer.cornerRadius = CGRectGetHeight(outerView.bounds) / 2; outerView.layer.borderColor = [UIColor blueColor].CGColor; outerView.layer.borderWidth = 1;
迅速
outerView.layer.cornerRadius = CGRectGetHeight(outerView.bounds) / 2 outerView.layer.borderColor = UIColor.blueColor().CGColor outerView.layer.borderWidth = 1
分段的控制不会改变它画出angular的方式,所以它继续以自己的方式画出angular,然后切断它们。 您不负责分段控制如何绘制其边界形状。 如果你真的不喜欢它的绘制方式,你必须从头开始devise自己的替代控制。 你可以合理地接近你想要做的事情是设置分段控制的背景图像。
你的结果是因为别的东西(自定义绘图?)控制边框而不是图层。 幸运的是,该图层设置似乎优先。
如果你知道你需要什么边框颜色,你可以添加(例子):
self.segmentedControl.layer.borderColor = [UIColor whiteColor].CGColor; self.segmentedControl.layer.borderWidth = 1.0;
以前的解决scheme不适合我。 我的实际工作解决scheme是:
将UISegmentedControlembedded到UIView(让我们说“outerViewControl”)中,并且将该引用,引导,尾随,底部和顶部空间约束设置为-1(以便切断UISegmentedControl边框)。
那么你的outerViewControl应该是这样的:
outerViewControl.clipsToBounds = true; outerViewControl.layer.cornerRadius = 0; //whatever outerViewControl.layer.borderWidth = 1; outerViewControl.layer.borderColor = segmentedControl.tintColor.CGColor;
使用下面的代码:
segmentContrl.layer.borderColor=*anycolor*.CGColor; segmentContrl.layer.cornerRadius = 0.0; segmentContrl.layer.borderWidth = 1.5f;
更新了Swift 3和Xcode 8.2的兼容性
mySegmentedControl.layer.cornerRadius = 25.0 mySegmentedControl.layer.borderColor = UIColor.white.cgColor mySegmentedControl.layer.borderWidth = 1.0 mySegmentedControl.layer.masksToBounds = true