滾動時,我如何簡單地縮放imageView
和autolayout
?ImageView向下滾動時縮放
嘗試看到視差效果,但不完全是我想要的。
我只想用一個scrollView
和頭ImageView
誰可以調整大小取決於scrollView
位置。
滾動時,我如何簡單地縮放imageView
和autolayout
?ImageView向下滾動時縮放
嘗試看到視差效果,但不完全是我想要的。
我只想用一個scrollView
和頭ImageView
誰可以調整大小取決於scrollView
位置。
步驟通過步驟:
1 - 開放故事板並與這些約束添加在頂部的圖像視圖(選擇您長寬比):
2 - 選擇aspectFill模式和clipSubviews爲你的uiimage
3 - 在裏面有一個子視圖的viewController的頂部添加一個UIScrollView。有關scrollView的自動佈局的所有細節:http://natashatherobot.com/ios-autolayout-scrollview/
4 - 然後在您的代碼中使您的imageView和scrollView的插座引用。
5 - 在viewDidLoad中,插入 self.automaticallyAdjustsScrollViewInsets =假,並設置contentInsets和滾動視圖的contentOffset:
class ViewController: UIViewController {
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
self.automaticallyAdjustsScrollViewInsets = false
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
let imageHeight = imageView.frame.height
let newOrigin = CGPoint(x: 0, y: -imageHeight)
scrollView.contentOffset = newOrigin
scrollView.contentInset = UIEdgeInsets(top: imageHeight, left: 0, bottom: 0, right: 0)
}
}
6 - 添加scrollviewDelegate到ViewController和scrollViewDidScroll方法來獲取滾動視圖
的位置class ViewController: UIViewController, UIScrollViewDelegate
override func viewDidLoad() {
super.viewDidLoad()
scrollView.delegate = self
self.automaticallyAdjustsScrollViewInsets = false
}
func scrollViewDidScroll(scrollView: UIScrollView) {
let offsetY = scrollView.contentOffset.y
if offsetY < 0
{
imageView.frame.size.height = -offsetY
}
else
{
imageView.frame.size.height = imageView.frame.height
}
}
7 - 然後建立並運行。
你可以在github下載例如: https://github.com/raphrel/scalingImageWhenScrollDown
有可能是更好的解決方案,但是這一個工程。 享受
你能重新表達你的問題嗎?目前還不清楚你在做什麼以及你想達到什麼。 – frp