簡體   English   中英

Swift:UIScrollView不能垂直滾動

[英]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添加到scrollViewcontentView

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靈活高度。

http://nscookbook.com/2015/06/ios-programming-recipe-36-a-fixed-width-dynamic-height-scrollview-in-autolayout/

當我添加超出實際父視圖大小的內容時,我無法向下滾動以查看其余內容。 似乎它們如何使高度動態化並且寬度固定是簡單地將UIScrollView的子視圖限制為具有與UIScrollView的父級相等的寬度。 我成功了,但滾動仍然沒有發生。 謝謝您的幫助!

以下是此視圖的完整ViewController

https://gist.github.com/ebbnormal/90c35c435320e0ec1307e95f575119bf

UPDATE

我使用Daniels的建議,刪除將contentView的底部錨定到scrollView底部。

所以調試視圖層次之后,我看到contentView被設置為小於其父視圖的高度,這似乎從一個自動布局約束的設置來阻止self.bottomcontentViewlabel.bottom一個的UILabel這是一個孩子contentView 我從來沒有設置這個約束,我不知道如何擺脫它。

以下是ViewHierarchy中的內容,其中突出顯示的View是您看到的contentView被截斷。

在此輸入圖像描述

添加約束的方式很可能是導致問題的原因。

您似乎將內容視圖的邊界限制為與滾動視圖相同。 在這種情況下,由於約束,不會發生滾動。

這是因為你在tmpViewsDictionary包含了self.scrollViewself.contentView

在您鏈接的教程中,字典僅用於向滾動視圖的內容視圖中的視圖添加約束。 它不包括滾動視圖或內容視圖。

EUREKA。 我愚蠢地設置了contentView的子項的垂直約束並將其固定到contentView的底部,因此為什么contentView被剪短並且沒有滾動。

"V:|-300-[wikiTitle]|"

最后一個"|" 切斷了我的UIScrollView短片的孩子。

最后,我需要將contentView的最后一項固定為遠離contentView底部的特定間距

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM