簡體   English   中英

帶有自動布局的ScrollView

[英]ScrollView With AutoLayout

我有一個奇怪的輸出與autoLayout用於以下情況。

我有4個子頁面可以滾動。 (subPage或scrollPage已與autoLayout分開設計)。

MainView有一個scrollView組件,可加載子頁面。

除了開始,一切都很好。 第一次加載后,子頁面組件未正確排列。 一旦收到第一次點擊/觸摸,它就會自動重新滾動/重新安排到正確的位置。 看起來像個蟲子。

加載會產生問題。 我已附上2張圖片以供上述情況參考。 首次加載時為FirstOne 在此處輸入圖片說明

點擊滾動區域后的第二個 在此處輸入圖片說明

第二個是適當的。 我需要展示這個,而不是第一個。 需要幫助解決此問題。

謝謝,Satyaranjan

還有一點要注意,[myScroll scrollRectToVisible:CGRectMake(320 * pageNumber,0,320,240)animation:NO]; 這不起作用,因為我為子頁面使用了動態寬度。 因為iPhon5和iPhone6會有所不同

首先,您通常不希望在使用自動布局時設置scrollView的contentSize -如果正確放置了子視圖,它將自動執行此操作。

嘗試這個:

  • 將scrollView的所有四個邊約束到其父級
  • 確保所有視圖的translatesAutoresizingMaskIntoConstraints為否
  • 創建一個名為“ contentView”的視圖,並將其作為scrollView的父級。
  • 將contentViews的所有四個邊緣固定到scrollView
  • 將您的子視圖父到contentView並使用自動布局進行排列

如果出於某種原因需要以編程方式更改子視圖的大小,則需要重寫其內在內容大小方法以在更改后返回正確的大小。 更改后,您可能需要從其父視圖中調用該視圖的sizeToFit方法(對此不確定(它可能會自動發生))。

通常,使用自動版式時,幾乎永遠不應顯式設置任何內容的大小。 如果無法避免,則應通過創建高度/寬度約束並在運行時在updateConstraints方法中對其進行修改來實現。

編輯:

我制作了一個示例項目,演示了如何設置scrollView和其他一些事情。

看一看!

https://github.com/annabd351/AutolayoutTemplate

暫無
暫無

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

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