我有一個UIScrollView
在界面生成器中創建了一堆UITextView
和UIImageView
對象已經添加。我已將它連接到IBOutlet
,並在-(void)viewDidLoad
下將其內容大小設置爲1200x2000
。用戶交互已啓用,多點觸控,滾動已啓用並顯示垂直和水平滾動指示都設置爲YES
。當我在iOS模擬器中啓動應用程序時,它不會滾動。什麼可能是這種行爲的原因?UIScrollView不滾動?
回答
viewDidLoad即將推出。您必須等到視圖佈局發生之後。嘗試在viewDidAppear中設置contentSize。
您使用的是自動佈局?如果是這樣,請查看以下答案(並忘記1.): UIScrollView doesn't use autolayout constraints。
我嘗試了第一個,但沒有幫助。我檢查了另一個答案,並寫了這個非常快速的代碼來實現它:' - (void)viewDidLoad { //在加載視圖後執行任何其他設置。 _mainScrollView.contentSize = CGSizeMake(4000,4000);對於(int i = 0; i <_mainScrollView.subviews.count; i ++){ UIView * newSubview = [_ mainScrollView.subviews objectAtIndex:i]; newSubview.translatesAutoresizingMaskIntoConstraints = NO; } [super viewDidLoad]; }' – 68cherries
@Nenad M:爲什麼忘記第一?純自動佈局方法似乎仍然需要設置'contentSize'。也許如果你採取混合的方式,你不需要這樣做,但我還沒有嘗試過。 – testing
@timquinn:什麼是祕密?一個祕密似乎是[這個答案](http://stackoverflow.com/a/16029013/426227)。 – testing
我知道如何解決這個問題,而不是訴諸編寫代碼的最佳方式是,這一切都可以在故事板內完成,這裏是如何:啓用
- 離開自動佈局。
- 製作一個通用的UIView UIScrollView的子視圖。 2.1)把所有的視圖組件放在這個通用的UIView中。
- 在子視圖和UIScrollView之間進行自動佈局約束。您必須將最後一個子視圖的右側和/或底部固定在UIScrollView的右側和/或底部。這就是UIScrollView知道內容大小的方式。
非常感謝你!這是我發現在iOS 7環境中使用UIScrollView與Autolayout一起工作的唯一方法!!!!!!! :) 豎起大拇指! –
viewDidLoad
確實爲時過早,但viewDidAppear:animated
也許不夠遲。設置contentOffset
的理想場所在viewDidLayoutSubviews
之內。
如果您使用自動佈局,確保你把代碼中
viewDidLayoutSubviews
我使用自定義視圖的UIScrollView的設置內容大小,拉刷新功能,滾動視圖不滾動。我嘗試設置contentSize
與AutoLayout
,並嘗試通過代碼設置它。滾動視圖仍然無法滾動。
花費3〜4小時後,我通過contentInset
來解決。它會告訴滾動視圖爲滾動添加一些額外的空間。
override func viewDidLayoutSubviews() {
// Add extra 15pt on the `top` of scrollView.
//self.scrollView.contentInset = UIEdgeInsetsMake(15, 0, 0, 0)
// Add extra 2pt on the `bottom` of scrollView, let it be scrollable. And the UI is more beautiful in my case.
self.scrollView.contentInset = UIEdgeInsetsMake(0, 0, 2, 0)
}
參考文檔:
- 1. UIScrollview不滾動
- 2. UIScrollView不滾動...
- 3. UIScrollVIew不滾動
- 4. UIScrollView不滾動
- 5. UIScrollView不滾動
- 6. UIScrollView不滾動
- 7. UIScrollView不滾動滾動RubyMotion
- 8. UIScrollView不滾動iOS
- 9. UIScrollview不滾動iOS
- 10. uiscrollview不滾動uiimageview
- 11. UIScrollView不滾動ios6
- 12. Objective-C UIScrollView不滾動
- 13. UIScrollView不滾動到最後?
- 14. UIScrollView不滾動Swift 3
- 15. UIScrollView不會滾動(Storyboards)
- 16. UIScrollView:滾動不起作用
- 17. UIScrollView不滾動屏幕?
- 18. UIScrollView不滾動平滑?
- 19. UIScrollview不能平滑滾動
- 20. UIScrollView:什麼都不滾動
- 21. 另一個UIScrollView不滾動
- 22. UIScrollView不滾動模態,Swift
- 23. UIScrollView不滾動在iPAD
- 24. UITableView頭UIScrollView不滾動
- 25. UIScrollView在iOS11中不滾動
- 26. uiview中的uiscrollview不滾動
- 27. UIScrollView在UIViewController不滾動
- 28. UIScrollView不會完全滾動
- 29. iPhone SDK:的UIScrollView不滾動
- 30. UIScrollView不滾動使用uiview
發佈的初始化代碼? –
沒有任何初始化代碼,我相信UIScrollView是由IB自動初始化的。我所做的代碼明智的做法是設置scrollView的contentSize屬性 – 68cherries
重寫並檢查UIScrollView委託方法,以檢查UIScrollView實際上是否獲取觸摸事件或某個其他視圖實際上是吃掉所有事件..g scrollViewWillBeginDragging: – Dinesh