Вставки содержимого UIScrollView нельзя удалить?

Здравствуйте, я пытаюсь создать боковую прокрутку с помощью swift (мне нужно быть совместимым с IOS9, и я не могу использовать UIScrollview.contentInsetAdjustmentBehavior = .never), и у меня возникают проблемы с созданием UIScrollView, у которого нет вставки содержимого. Следующий код показывает, что я сделал, и я надеюсь, что кто-то может указать мне на что-то.

override func viewDidLoad() {
        super.viewDidLoad()

        automaticallyAdjustsScrollViewInsets = false // 

        let someView = UIView()
        someView.frame = UIScreen.main.bounds
        someView.backgroundColor = .yellow
        view.addSubview(someView)

        // some image size calcs to keep the image in the same proportions on all devices.
        let frame = view.frame
        let height = frame.height * 0.35
        let ratioFactor = CGFloat(8.82)
        let width = height * ratioFactor

        let hillsImgView = UIImageView()
        let image = UIImage(named: "hills")
        hillsImgView.image = image

        // place imageView at the bottom of the screen
        let rect = CGRect(x: 0, y: frame.height - height, width: width, height: height)
        hillsImgView.frame = rect
        hillsImgView.backgroundColor = .green
        hillsImgView.contentMode = UIImageView.ContentMode.scaleToFill

        let hillsScrollView = UIScrollView()
        hillsScrollView.frame = UIScreen.main.bounds
        hillsScrollView.frame.origin.x = 10 // just to see the parent views yellow bg
        hillsScrollView.backgroundColor = .red
        hillsScrollView.contentSize = hillsImgView.frame.size // the image is longer then the screen
        hillsScrollView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 0 right: 0)
        hillsScrollView.contentOffset = CGPoint(x: 0, y: 0)
        hillsScrollView.addSubview(hillsImgView)

        someView.addSubview(hillsScrollView)
    }

Я могу установить позицию изображения x, чтобы убрать вставку SafeArea, но мне кажется, что это тоже не лучшее решение.

Привет Т.

Результат симулятора


person TeeJaay    schedule 17.07.2020    source источник
comment
@DonMag К сожалению, на этот вопрос нет ответа. Я четко заявил, что это должно работать в IOS9, предлагаемый ответ работает только в более поздних версиях iOS.   -  person TeeJaay    schedule 20.07.2020
comment
@TeeJay - не знаю, что вы имеете в виду... Первым iPhone с Safe Area был iPhone X с iOS 11. Таким образом, если целью развертывания вашего приложения является iOS 9, вы можете использовать if #available(iOS 11.0, *) для использования свойства contentInsetAdjustmentBehavior.   -  person DonMag    schedule 20.07.2020
comment
Да, это имеет смысл. Спасибо за подсказку, я новичок в экосистеме iOS, и мне еще предстоит кое-чему научиться. Обидно, что нам вообще нужно поддерживать ios9, но это решение компании, которое в конечном итоге приведет к уродливому неэффективному коду, не говоря уже об исключении всех замечательных вещей, которые вы можете использовать в более поздних версиях.   -  person TeeJaay    schedule 21.07.2020