Попробуйте.
Округляет новую ширину и высоту до ближайшего четного числа.Это гарантирует, что метка / textField может быть центрирована последовательно.
@IBAction func sizeChange(_ sender: UISlider) {
let scaleFactor = CGFloat(sender.value)
// CGAffineTransform will rastarize the text and make it blurry
// selectedView.transform = CGAffineTransform(scaleX: scaleFactor, y: scaleFactor)
let baseSize = isLabelSelected ? labelBaseSize : textFielBasedSize
let actualWidth = baseSize!.width * scaleFactor
let roundedWidth = CGFloat(Int(round(actualWidth / 2.0)) * 2)
let actualHeight = baseSize!.height * scaleFactor
let roundedHeight = CGFloat(Int(round(actualHeight / 2.0)) * 2)
selectedView.bounds = CGRect(x: selectedView.bounds.origin.x,
y: selectedView.bounds.origin.y,
width: roundedWidth,
height: roundedHeight)
//selectedView.bounds = CGRect(x: selectedView.bounds.origin.x,
// y: selectedView.bounds.origin.y,
// width: baseSize!.width * scaleFactor,
// height: baseSize!.height * scaleFactor)
}