[英]Swift: UIScrollView not scrolling vertically
我看過這篇文章: scrollView沒有滾動swift
我看到接受的答案建議該人將底部約束添加到UIScrollViews
子視圖contentView
。 我對每個視圖都有以下視圖層次結構和約束:
UIView - > UIScrollView(scrollView) - > UIView(contentView)
//in the View Controller
self.view.addSubview(coverImage)
scrollView.addSubview(contentView)
view.addSubview(scrollView)
這里有NSLayoutConstraint
的I添加到scrollView
和contentView
let tmpViewsDictionary = ["scrollView":self.scrollView, "contentView": self.contentView]
self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-0-[scrollView]-0-|",options: [], metrics: nil,views: tmpViewsDictionary))
self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-0-[scrollView]-0-|",options: [], metrics: nil, views: tmpViewsDictionary))
self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-0-[contentView]-0-|", options: [], metrics: nil, views: tmpViewsDictionary))
self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-0-[contentView]-0-|", options: [], metrics: nil, views: tmpViewsDictionary))
self.view.addConstraints([NSLayoutConstraint(item :self.contentView, attribute: .Width, relatedBy: .Equal, toItem: self.view, attribute: .Width , multiplier: 1, constant: 0)])
我遵循本教程的一般結構,它修復了寬度並具有scrollView
靈活高度。
當我添加超出實際父視圖大小的內容時,我無法向下滾動以查看其余內容。 似乎它們如何使高度動態化並且寬度固定是簡單地將UIScrollView
的子視圖限制為具有與UIScrollView
的父級相等的寬度。 我成功了,但滾動仍然沒有發生。 謝謝您的幫助!
以下是此視圖的完整ViewController
:
https://gist.github.com/ebbnormal/90c35c435320e0ec1307e95f575119bf
UPDATE
我使用Daniels的建議,刪除將contentView
的底部錨定到scrollView
底部。
所以調試視圖層次之后,我看到contentView
被設置為小於其父視圖的高度,這似乎從一個自動布局約束的設置來阻止self.bottom
的contentView
到label.bottom
一個的UILabel
這是一個孩子contentView
。 我從來沒有設置這個約束,我不知道如何擺脫它。
以下是ViewHierarchy中的內容,其中突出顯示的View
是您看到的contentView
被截斷。
添加約束的方式很可能是導致問題的原因。
您似乎將內容視圖的邊界限制為與滾動視圖相同。 在這種情況下,由於約束,不會發生滾動。
這是因為你在tmpViewsDictionary
包含了self.scrollView
和self.contentView
。
在您鏈接的教程中,字典僅用於向滾動視圖的內容視圖中的視圖添加約束。 它不包括滾動視圖或內容視圖。
EUREKA。 我愚蠢地設置了contentView
的子項的垂直約束並將其固定到contentView
的底部,因此為什么contentView
被剪短並且沒有滾動。
"V:|-300-[wikiTitle]|"
最后一個"|"
切斷了我的UIScrollView
短片的孩子。
最后,我需要將contentView
的最后一項固定為遠離contentView
底部的特定間距
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.