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。是否要滚动背景图像和前景文本。