【发布时间】:2017-01-19 05:16:38
【问题描述】:
我有一个垂直滑块,它使用以下代码在其自定义类中生成句柄图像:
func generateHandleImage(with color: UIColor) -> UIImage {
let rect = CGRect(x: 0, y: 0, width: (superview?.bounds.size.height)! * 0.07,
height: (superview?.bounds.size.width)!)
return UIGraphicsImageRenderer(size: rect.size).image { (imageContext) in
imageContext.cgContext.setFillColor(color.cgColor)
imageContext.cgContext.fill(rect.insetBy(dx: 0, dy: 0))
}
}
我已经在 IB 中为滑块设置了自动布局约束,使其在其父视图的 x 和 y 轴上居中,并且宽度和高度与它的父视图的高度和宽度相等(因为它是一个垂直滑块)。
这是使我的滑块垂直并调用函数生成句柄图像的代码:
// Make Sliders Vertical
let sliderTransform = CGAffineTransform(rotationAngle: CGFloat(M_PI_2) + CGFloat(M_PI))
pitchBendSlider.transform = sliderTransform
pitchBendSlider.setThumbImage(pitchBendSlider.generateHandleImage(with: .white), for: .normal)
我希望句柄图像等于其父视图的宽度。它在 iOS 模拟器中的 iPad Air 2 上正确执行此操作,但在 iPad Pro 12.9" 上它大约是超级视图宽度的 80-90%,而在 iPad Air 上它比超级视图的宽度略大。
如何使自定义滑块的图像句柄的宽度在所有 iPad 尺寸上都等于其父视图的宽度?
【问题讨论】:
标签: swift ipad interface-builder constraints uislider