Невозможно увеличить UIImageView в UIScrollView - PullRequest
0 голосов
/ 24 декабря 2018

Я хочу увеличить UIImageView в ScrollView, но я не знаю, как это сделать.

import UIKit

class ViewController: UIViewController, UIScrollViewDelegate {

    var scrollView: UIScrollView = UIScrollView()
    var viewInScrollView: UIView = UIView()
    var selectedImageView: UIImageView = UIImageView()


    override func viewDidLoad() {
        super.viewDidLoad()

        scrollView.delegate = self

        view.addSubview(scrollView)
        scrollView.addSubview(viewInScrollView)
        viewInScrollView.addSubview(selectedImageView)
        selectedImageView.image = UIImage(named: "michael")

        scrollView.translatesAutoresizingMaskIntoConstraints = false
        viewInScrollView.translatesAutoresizingMaskIntoConstraints = false
        selectedImageView.translatesAutoresizingMaskIntoConstraints = false

        scrollView.anchor(top: view.safeAreaLayoutGuide.topAnchor, leading: view.leadingAnchor, bottom: view.bottomAnchor, trailing: view.trailingAnchor)
        viewInScrollView.anchor(top: view.safeAreaLayoutGuide.topAnchor, leading: view.leadingAnchor, bottom: view.bottomAnchor, trailing: view.trailingAnchor)
        viewInScrollView.widthAnchor.constraint(equalToConstant: view.frame.width).isActive = true
        viewInScrollView.heightAnchor.constraint(equalToConstant: view.frame.height).isActive = true

        selectedImageView.anchor(top: viewInScrollView.topAnchor, leading: viewInScrollView.leadingAnchor, bottom: viewInScrollView.bottomAnchor, trailing: viewInScrollView.trailingAnchor)

    }

    func viewForZooming(in scrollView: UIScrollView) -> UIView? {
        return selectedImageView
    }

}

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018

Вы должны добавить maximumZoomScale, minimumZoomScale к вашему scrollView, как показано ниже.

scrollView.minimumZoomScale = 0.25
scrollView.maximumZoomScale = 5.0

Надеюсь, эта помощь!.

0 голосов
/ 24 декабря 2018

Я предлагаю начать с учебного примера для UIScrollView масштабирования.Сначала делайте это шаг за шагом.

И ....

На первый взгляд, ваши ограничения для viewInScrollView не точны.Иерархия представлений в вашем проекте:

view -> scrollView -> viewInScrollView -> selectedImageView

Ограничения для viewInScrollView будут определять contentSize из UIScrollView.При увеличении / уменьшении contentSize будет изменено.Таким образом, якорь (сверху, снизу, слева, справа) должен быть выровнен по UIScrollView, а не по view.Поэтому я считаю следующее ограничение неправильным.

// Not right
viewInScrollView.anchor(top: view.safeAreaLayoutGuide.topAnchor, leading: view.leadingAnchor, bottom: view.bottomAnchor, trailing: view.trailingAnchor)

// It should aligned to `UIScrollView`'s top, bottom, left and right anchors.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...