Как добавить рамку к круглому изображению с маской

Это моя попытка:

func round() {
    let width = bounds.width < bounds.height ? bounds.width : bounds.height
    let mask = CAShapeLayer()
    mask.path = UIBezierPath(ovalInRect: CGRectMake(bounds.midX - width / 2, bounds.midY - width / 2, width, width)).CGPath

    self.layer.mask = mask

    // add border
    let frameLayer = CAShapeLayer()
    frameLayer.path = mask.path
    frameLayer.lineWidth = 4.0
    frameLayer.strokeColor = UIColor.whiteColor().CGColor
    frameLayer.fillColor = nil

    self.layer.addSublayer(frameLayer)
}

Он работает на симуляторе iphone 6 (раскадровка имеет размер 4.7), но на 5 и 6+ выглядит странно:

Это проблема с автоматическим макетом? Без рамки авто верстка работает корректно. Я впервые работаю с масками, и поэтому я не уверен, что то, что я сделал, правильно.

round функция вызывается вviewDidLayoutSubviews.

Какие-нибудь мысли?

Ответы на вопрос(2)

Ваш ответ на вопрос