我注意到,当我为UISegmentedControl.backgroundColor设置颜色时,颜色会超出控件的边缘(虽然没有超出视图的范围)。下面是一个示例,将分段控件的背景色设置为白色,容器视图的背景色设置为灰色:

我已经设置了分段控件的AutoLayout约束,因此应该使用intrinsicContentSize,但是我还没有看到其他人发布关于这个问题的帖子
请注意,上面的图片是我所能看到的最好的.在此之前,它的出血约3-4 4px。
我尝试将视图配置为clipSubviews,并将支持UIView的层配置为masksToBounds,但我并不认为这会解决问题,因为我假设出血包含在视图/层的边界内。
如有任何建议或建议,请见谅。如果不是的话,我只需要创建映像来支持修复出血的UISegmentedControl,但至少要维护它是很烦人的。
发布于 2013-12-11 19:33:48
将段控件的层角半径设置为4.0。应该会有帮助的。您可能需要导入QuartzCore才能访问该层的属性。
segment.layer.cornerRadius = 4.0;
segment.clipsToBounds = YES;发布于 2014-10-30 07:33:38
将线段控制层角半径设置为5,ClipsToBounds是。
segmentController.layer.cornerRadius = 5;
segmentController.clipsToBounds = YES;希望它能为你服务
发布于 2016-04-25 15:55:49
我在Swift所能达到的最好的结果是:
segmentedControl.layer.cornerRadius = 4
let mask = CAShapeLayer()
mask.frame = CGRectMake(0, 0, segmentedControl.bounds.size.width-1, segmentedControl.bounds.size.height);
let maskPath = UIBezierPath(roundedRect: mask.frame,
byRoundingCorners: [.BottomLeft, .BottomRight, .TopLeft, .TopRight],
cornerRadii: CGSize(width: 4.0, height: 4.0))
mask.path = maskPath.CGPath
segmentedControl.layer.mask = maskhttps://stackoverflow.com/questions/20528255
复制相似问题