Ответ 1
Задайте угловой радиус слоя управления сегмента 4. Это должно помочь. Возможно, вам придется импортировать QuartzCore, чтобы иметь доступ к свойствам слоя.
segment.layer.cornerRadius = 4.0
segment.clipsToBounds = true
Я заметил, что когда я устанавливаю цвет для UISegmentedControl.backgroundColor, цвет истекает за пределы элемента управления (хотя и не за пределами границ представления). Вот пример, когда сегментный цвет фона управления установлен на белый, а цвет фона в виде контейнера установлен на серый:
Я установил ограничения AutoLayout сегментированного элемента управления таким образом, чтобы использовать intrinsicContentSize, но я не видел, чтобы кто-либо еще сообщал об этой проблеме
Обратите внимание, что изображение выше - это лучшее, что я смог получить, чтобы он выглядел... до этого он истекал кровью примерно на 3-4 пикселя.
Я попытался настроить представление на clipSubviews и слой, поддерживающий UIView, для masksToBounds, но я не ожидал, что это исправить проблему, поскольку я предполагаю, что кровотечение содержится внутри границ представления/уровня.
Любые предложения или советы оценены. Если нет, мне просто нужно создать изображения, чтобы поддержать UISegmentedControl, которые исправляют кровотечение, но это раздражает, чтобы поддерживать, по меньшей мере.
Задайте угловой радиус слоя управления сегмента 4. Это должно помочь. Возможно, вам придется импортировать QuartzCore, чтобы иметь доступ к свойствам слоя.
segment.layer.cornerRadius = 4.0
segment.clipsToBounds = true
Устанавливаем угловой радиус слоя управления сегмента 5 и ClipsToBounds YES.
segmentController.layer.cornerRadius = 5;
segmentController.clipsToBounds = YES;
Надеемся на его работу для вас
лучший результат, который я мог бы достичь в 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 = mask