Stack View ScaleAspectFit Маска Изменение размера в Swift

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

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

Как вы можете видеть, маска сохраняет исходный размер изображения, а не измененную версию. Я пробовал много разных вариантов ширины и высоты, включаяbounds.width, layer.frame.width, frame.width, frame.origin.xи т. д., и не повезло.

Текущий код в Swift 2:

let testPicture:UIImageView = UIImageView(image: UIImage(named: "myPicture"))
testPicture.contentMode = .ScaleAspectFit
testPicture.layer.borderWidth = 1
testPicture.clipsToBounds = true
testPicture.layer.masksToBounds = true
view.layer.addSublayer(shapeLayer)

var width = testPicture.layer.frame.width
var height = testPicture.layer.frame.height
let center = CGPointMake(width/2, height/2)
let radius = CGFloat(CGFloat(width) / 2)


// Mask
let yourCarefullyDrawnPath = UIBezierPath()
        yourCarefullyDrawnPath.moveToPoint(center)
        yourCarefullyDrawnPath.addArcWithCenter(center,
            radius: radius,
            startAngle: 0,
            endAngle: CGFloat( (0.80*360.0) * M_PI / 180.0),
            clockwise: true)
yourCarefullyDrawnPath.closePath()

let maskPie = CAShapeLayer()
maskPie.frame = testPicture.layer.bounds
testPicture.clipsToBounds = true
testPicture.layer.masksToBounds = true
maskPie.path = yourCarefullyDrawnPath.CGPath
testPicture.layer.mask = maskPie


// Add Into Stackview
self.myStackView.addArrangedSubview(testPicture)
self.myStackView.layoutIfNeeded()

Я подозреваю, что я выбираю неправильную ширину и высоту, чтобы сгенерировать переменные центра и радиуса, хотя после попытки найти все различные ширины и высоты, которые я могу найти, я все еще не могу получить правильные размеры. :-(

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

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