我有一個ViewController。在它中,我將ScrollView與View(contentView)結合在一起。之後我從contentView拖到View並設置Equal Height。現在它滾動,但不完全。UIScrollView不會完全滾動
正如你看到有它繼續TextView的下方,但它 不滾動。我該如何解決它?
我有一個ViewController。在它中,我將ScrollView與View(contentView)結合在一起。之後我從contentView拖到View並設置Equal Height。現在它滾動,但不完全。UIScrollView不會完全滾動
正如你看到有它繼續TextView的下方,但它 不滾動。我該如何解決它?
您需要設置滾動視圖的內容大小。使用下面的代碼來做到這一點:
func viewDidLayoutSubviews()
{
super.viewDidLayoutSubviews()
self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width, self.contentView.frame.size.height);
}
它不幫助我。我必須刪除我的約束 - 等高還是不?我刪除它,它根本不滾動 –
@OrkhanAlizade對於contentView,您只需要將約束透視設置爲滾動視圖。頂部=底部=左=右= 0 –
是的,我做的完全一樣 –
要使用Autolayout
與UIScrollView
是棘手的。
在你的代碼必須通過計算的contentView
subviews
高度更新的高度限制爲您內容查看,並且會自動更新contentSize
您ScrollView
,您可以通過所有子視圖滾動。
欲瞭解更多信息,請使用Autolayout + UIScrollView您可以閱讀this。
UIScrollView能夠自動計算它的內容高度和寬度,但你需要幫助它。 要做到這一點,你需要:
contentView
(你的情況),以上海華盈的各方面(這是Scroll View
)。contentView
來計算它的大小。這是您的方法中的一個小錯誤。您已將contentView
的高度設置爲等於View
的高度。所以基本上Scroll View
的contentSize.height與View
的高度相同。這對於動態內容而言並不是真正需要的。通常你想設置的contentView
等於View
的寬度的寬度,並且不設置contentView
的高度。相反,您希望將子視圖contentView
綁定到他們的超級視圖,以便他們的超級視圖(contentView
)將自動計算其高度。
在你的情況我會綁定:
pizza.jpg
到左右上角上海華(附pizza.jpg
高度由內在影像尺寸設定);SAMPLE TITLE
標籤 - 左右超視圖;頂部到pizza.jpg
圖片;Text View
- 左下角到superview;頂部至SAMPLE TITLE
標籤;設定一個固定的高度。在這種情況下,contentView
將自行定義所需的高度。 Scroll View
將相應地設置它的contentSize。 你的屏幕將能夠垂直滾動(應該是);)
根據this link(感謝this Matt's answer first)的UIScrollView與自動版式行爲不同於其他視圖。
scrollView的子視圖從scrollView的contentView設置它們的約束,而不是直接滾動視圖。這允許內容滾動。
所以:
它應該是這樣的:
希望這有助於
讀this (from Matt once again)進一步信息,請
是否設置了滾動型的contentsize? – Leo
@Leo no。我想自動完成,但不知道該怎麼做。你可以幫我嗎? –
由於他使用自動佈局,因此不需要設置contentSize。你將contentView的高度設置爲等於視圖高度,爲什麼它應該滾動? –