Как дать angleRadius для UIBezierPath

Я создал прямоугольник, используя следующий код, и теперь мне нужно закруглить углы этого прямоугольника. но я не могу найти свойство с именем layer.cornerRadius, может ли кто-нибудь мне помочь?

class OvalLayer: CAShapeLayer {

    let animationDuration: CFTimeInterval = 0.3

    override init() {
        super.init()
        fillColor = Colors.green.CGColor
        path = ovalPathSmall.CGPath
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    var ovalPathStart: UIBezierPath {
        let path = UIBezierPath(ovalInRect: CGRect(x: 0.0, y: 0.0, width: 100.0, height: 100.0))

        return path
    }
}

person roledene JKS    schedule 28.01.2016    source источник
comment
вы можете использовать сам UIBezierPath во время рисования, чтобы сделать угловой радиус   -  person vaibby    schedule 28.01.2016
comment
Поскольку вы используете UIBezierPath, вам нужно нарисовать закругленный угол, используя только UIBezierPath. Проверьте это, это поможет вам в том, что вам нужно.   -  person iphonic    schedule 28.01.2016
comment
@iphonic Не могли бы вы прислать мне ссылку, которую вы предложили. Я не смогу открыть это.   -  person Khushbu Desai    schedule 28.05.2018
comment
@KhushbuDesai Кажется, они переместили его, я нашел новую ссылку здесь является...   -  person iphonic    schedule 28.05.2018
comment
@iphonic, не могли бы вы помочь мне с этим. stackoverflow.com/questions/50541219/   -  person Khushbu Desai    schedule 28.05.2018


Ответы (5)


Вы можете использовать метод ниже, чтобы сделать все углы круговыми...

 UIBezierPath(roundedRect: anyView.bounds, cornerRadius: CGSize(width: 10.0, height: 10.0))

Если вы хотите, чтобы конкретный угол был круглым, используйте метод ниже.

 UIBezierPath(roundedRect: anyView.bounds,
        byRoundingCorners: .BottomLeft | .BottomRight,
        cornerRadius: CGSize(width: 10.0, height: 10.0))
person Bhoomi Jagani    schedule 28.01.2016
comment
не могли бы вы предложить закругленные углы для нестандартных форм, таких как звезда. - person Lakshmi Keerthana Siddu; 15.02.2017
comment
@LakshmiKeerthanaSiddu ты сделал закругленные углы для звезды? Я хочу сделать то же самое. Не могли бы вы мне помочь! - person Khushbu Desai; 28.05.2018
comment
да, я сделал, но не с uibezierpath. я получил с CGPath или иначе вы можете использовать инструмент рисования - person Lakshmi Keerthana Siddu; 28.05.2018

используйте так:

let pathWithRadius = UIBezierPath(roundedRect:yourView.bounds, byRoundingCorners:[.TopRight, .TopLeft], cornerRadii: CGSizeMake(5.0, 5.0))
let maskLayer = CAShapeLayer()
maskLayer.pathWithRadius = pathWithRadius.CGPath
yourView.layer.mask = maskLayer

для всех угловых радиусов отредактируйте это

[.TopRight,.TopLeft,.BottomRight, .BottomLeft]
person Vvk    schedule 28.01.2016

использовать этот инициализатор

let path1 = UIBezierPath(roundedRect: CGRect, cornerRadius: CGFloat)

or

let path1 = UIBezierPath(roundedRect:  CGRect, byRoundingCorners: UIRectCorner, cornerRadii: CGSize))
person Ajay Kumar    schedule 28.01.2016

Цель c:

UIBezierPath* path = [UIBezierPath
    bezierPathWithRoundedRect: CGRectMake(0, 0, 150, 153)
                 cornerRadius: 50];

SWIFT:

var path: UIBezierPath = UIBezierPath(roundedRect: CGRectMake(0, 0, 150, 153), cornerRadius: 50)

Надеюсь, это поможет.

person KDeogharkar    schedule 28.01.2016

Так просто как:

 UIBezierPath(roundedRect: anyView.bounds, cornerRadius: CGFloat(4.0))
person oskarko    schedule 03.09.2020