Удалите место в верхней части UIScollView в Swift - PullRequest
0 голосов
/ 29 апреля 2018

Я создал ScrollView и ImageView:

let scrollView: UIScrollView = {
    let scroll = UIScrollView()
    scroll.backgroundColor = UIColor.red
    scroll.contentSize.height = 1234
    scroll.translatesAutoresizingMaskIntoConstraints = false
    return scroll
}()

let filmImageView: UIImageView = {
    let imageView = UIImageView()
    imageView.contentMode = .scaleAspectFill
    imageView.backgroundColor = UIColor.blue
    imageView.clipsToBounds = true
    imageView.translatesAutoresizingMaskIntoConstraints = false
    return imageView
}()

И я добавил их к своему виду с ограничениями, как показано ниже:

self.view.addSubview(scrollView)
scrollView.leftAnchor.constraint(equalTo: view.leftAnchor, constant: 0).isActive = true
scrollView.rightAnchor.constraint(equalTo: view.rightAnchor, constant: 0).isActive = true
scrollView.topAnchor.constraint(equalTo: view.topAnchor, constant: 0).isActive = true
scrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0).isActive = true

scrollView.addSubview(filmImageView)
filmImageView.widthAnchor.constraint(equalToConstant: self.view.frame.width).isActive = true
filmImageView.topAnchor.constraint(equalTo: scrollView.topAnchor, constant: 0).isActive = true
filmImageView.heightAnchor.constraint(equalToConstant: 350).isActive = true

Все работает, за исключением того, что только на iPhone X, imageView не находится в верхней части экрана. Смотрите изображение ниже. (Я сделал красный цвет фона прокрутки, чтобы вы могли видеть)

enter image description here

Я попытался добавить код в scrollView.

scroll.contentInset = UIEdgeInsets.zero
scroll.scrollIndicatorInsets = UIEdgeInsets.zero
scroll.contentOffset = CGPoint(x: 0.0, y: 0.0)

Вместе с:

self.automaticallyAdjustsScrollViewInsets = false

Но это ничего не меняет. Я не смог найти в Интернете ничего о том, как сделать так, чтобы мое изображение находилось в верхней части экрана прокрутки для iPhone X. Все остальные устройства iPhone показывают это нормально.

...