Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS如何在滚动视图中为图像创建视差效果_Ios_Swift_Cocoa Touch_Uikit_Parallax - Fatal编程技术网

iOS如何在滚动视图中为图像创建视差效果

iOS如何在滚动视图中为图像创建视差效果,ios,swift,cocoa-touch,uikit,parallax,Ios,Swift,Cocoa Touch,Uikit,Parallax,如何为图像创建视差效果? 我使用滚动视图。我发现教程只适用于表视图。 有可能为图像创建这样的效果吗? 更新代码: @IBOutlet weak var topConstrain: NSLayoutConstraint! override func viewDidLoad() { super.viewDidLoad() scrollView.delegate = self } func scrollViewDidScroll(_ scrollView: UIScrollView)

如何为图像创建视差效果?
我使用滚动视图。我发现教程只适用于表视图。 有可能为图像创建这样的效果吗?

更新代码:

@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
    }
}
@IBOutlet弱变量TopConstraint:NSLayoutConstraint!
重写func viewDidLoad(){
super.viewDidLoad()
scrollView.delegate=self
}
func scrollViewDidScroll(scrollView:UIScrollView){
如果scrollView.contentOffset.y<0{
TopConstraint.constant=scrollView.contentOffset.y
}
否则{
TopConstraint.constant=0
}
}

但这不起作用。

如果你想用一些foregroundScroll滚动图像,你必须使用两个scrollview 1) 图像滚动视图 2) 前景滚动视图 ,将imageview添加到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)
      }
   }

您可以查看下面的链接,这是一个非常旧的代码,我有46个错误:DYou可以使用UIScrollView来完成。在didScroll中,获取内容偏移量,制作一个比率,并将该比率作为CGAffineTransform(translationX:和CGAffineTransform(scaleX))应用于imageView。是否要滚动背景图像和前景文本。