Здравствуйте, я пытаюсь создать боковую прокрутку с помощью 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, но мне кажется, что это тоже не лучшее решение.
Привет Т.
iPhone X
сiOS 11
. Таким образом, если целью развертывания вашего приложения являетсяiOS 9
, вы можете использоватьif #available(iOS 11.0, *)
для использования свойстваcontentInsetAdjustmentBehavior
. - person DonMag   schedule 20.07.2020