iOS Как создать эффект параллакса в режиме прокрутки для изображения Swift - PullRequest
0 голосов
/ 17 мая 2018

Как я могу создать эффект параллакса для своего изображения , я использую представление прокрутки, мое руководство fount только для представления таблицы. Можно ли создать такой эффект для изображения? Код ОБНОВЛЕНИЯ:

@IBOutlet weak var topConstrain: NSLayoutConstraint!
override func viewDidLoad() {
    super.viewDidLoad()
    scrollView.delegate = self
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
    if scrollView.contentOffset.y < 0 {
        topConstrain.constant = scrollView.contentOffset.y
    }
    else {
        topConstrain.constant = 0
    }
}

Но это работает не правильно.

1 Ответ

0 голосов
/ 24 мая 2018

Если вы хотите прокрутить изображение с помощью некоторого foregroundScroll, вам нужно взять два вида прокрутки: 1) ImageScrollview 2) Foregroundscrollview, добавить изображение в backgroundscrollview и вызвать делегат scrollViewDidScroll.

   class ParallarXController: UIViewController,UIScrollViewDelegate {
         @IBOutlet weak var imageScrollView: UIScrollView!
         @IBOutlet weak var foregroundScrollView: UIScrollView!

            override func viewDidLoad() {
               super.viewDidLoad()
               let rearImg = UIImageView.init(image: UIImage(named: "readArticalBGimage"))
                    rearImg.frame = CGRect(x: 0, y: 0, width: (self.imageScrollView.frame.width), height: self.view.bounds.height+110)
                    imageScrollView.contentSize  = CGSize.init(width: self.view.bounds.width, height: self.view.bounds.height+100)
                    rearImg.contentMode = .scaleAspectFill
                    imageScrollView.addSubview(rearImg)

                }


     func scrollViewDidScroll(_ scrollView: UIScrollView) {
                    let foregroundScrollviewHeight = foregroundScrollView.contentSize.height - foregroundScrollView.bounds.height
                    let percentageScroll = foregroundScrollView.contentOffset.y / foregroundScrollviewHeight
                    let backgroundScrollViewHeight = imageScrollView.contentSize.height - imageScrollView.bounds.height
                    imageScrollView.contentOffset = CGPoint(x: 0, y: backgroundScrollViewHeight * percentageScroll)
      }
   }
...