Нет полноэкранного режима с UIImage в UIScrollView с iPhone X и выше - PullRequest
0 голосов
/ 05 июня 2019

Нет полноэкранного режима с UIImage в UIScrollView с iPhone X и выше.Отлично работает с iPhone 8 и +.

Скриншоты из Xcode. 'UIImage - это красный цвет. UIScrollView - это зеленый цвет.

И UIScrollView, и UIImage имеют ограничения для SuperView.Но с iPhone X UIImage не выравнивается с SuperView.Если я переместлю UIImage непосредственно в представление, тогда оно будет выглядеть нормально, но тогда моя опция масштабирования перестанет работать.

Это код для опции масштабирования.

func updateZoomFor(size: CGSize) {
        let widthScale = size.width / image2.bounds.width
        let heightScale = size.height / image2.bounds.height
        let scale = min(widthScale,heightScale)
        scrollView2.minimumZoomScale = scale
        scrollView2.minimumZoomScale = 1.0
        scrollView2.maximumZoomScale = 5.0
        scrollView2.contentSize = .init(width: 2000, height: 2000)
    }

    func viewForZooming(in scrollView2: UIScrollView) -> UIView? {
        return image2
    }

Это код, который нужно скрытьСтрока состояния и кнопка «Домой».

 override var prefersStatusBarHidden: Bool {
        return true
    }

    override var prefersHomeIndicatorAutoHidden: Bool {
        return true
    }

Я хочу, чтобы UIScrollView и UIImage работали с полноэкранным режимом на любом Iphone как в портретном, так и в альбомном режиме.

1 Ответ

0 голосов
/ 05 июня 2019

1.- установите ваш scrollView:

let scrollView: UIScrollView = {
        let scrollView = UIScrollView()
        scrollView.translatesAutoresizingMaskIntoConstraints = false;
        scrollView.backgroundColor = .clear
        return scrollView
    }()

2.- добавить в подвид:

private func setSubviews() {

        self.addSubview(scrollView)

}

3.- Добавить все в ScrollView-Subview пример:

self.addSubview(scrollView)
        self.scrollView.addSubview(screenIcon)
        self.scrollView.addSubview(screenTitle)

4.- установить ограничения:

 NSLayoutConstraint.activate([
            scrollView.topAnchor.constraint(equalTo: self.topAnchor, constant: 0),
            scrollView.leadingAnchor.constraint(equalTo: self.leadingAnchor, constant: 0),
            scrollView.trailingAnchor.constraint(equalTo: self.trailingAnchor, constant: 0),
            scrollView.heightAnchor.constraint(equalTo: self.heightAnchor, multiplier: 2),
            ])
...