У меня есть UIScrollView, чье представление контента должно быть масштабируемым и прокручиваемым. Представление содержимого содержит несколько подпредставлений, которые также содержат кнопки. Когда представление содержимого инициализируется, оно устанавливает свой кадр в аспектном соотношении.
func setupContentView() {
Bundle.main.loadNibNamed("viewXib", owner: self, options: nil)
addSubview(contentView)
let aspectRatio: CGFloat = 300.0 / 700.0
let width = aspectRatio * self.bounds.width
let margin = (self.bounds.width - width) / 2
contentView.frame = CGRect(x: margin, y: 0, width: width, height: self.bounds.height)
contentView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
}
Вызывается, когда представление содержимого инициализируется. В контроллере вида я установил делегат scrollView для масштабирования.
func viewForZooming(in scrollView: UIScrollView) -> UIView? {
return boardView
}
Теперь представление делает масштабирование НО очень странным способом и не поддерживает соотношение сторон, также, когда я пытаюсь прокрутить до верха, он все еще увеличивает вместо того, чтобы просто прокрутить уже увеличенное изображение. По сути, мне нужно представление, которое находится внутри представления содержимого scrollviews, чтобы всегда поддерживать соотношение сторон, даже при увеличении. Есть идеи, указатели?