我有一個圖像作爲UIScrollView的子視圖。我希望圖像最初使用UIView的autoResizingMask和contentMode(UIViewContentModeAspectFit)屬性適合屏幕的邊界。當滾動視圖的框架被更改爲爲鍵盤騰出空間時,我不希望縮小子圖像視圖以適應較小的框架。創建滾動視圖時,我無法禁用autoResizeSubviews,因爲必須在開始時重新調整子視圖的大小。現在我可以在鍵盤出現時關閉子視圖重新調整大小,並在消失時重新啓用它。這似乎工作正常,但似乎hackish。這是一種可以接受的方式嗎?還是有更好的解決方案?謝謝。iOS UIScrollView大小的子視圖只有一次
0
A
回答
1
不要擔心autoResizingMask,因爲它是UIScrollView的子視圖。
UIView上的autoResizingMask允許視圖在其父視圖的框架已被調整大小時自動調整大小。在這種情況下,聽起來就像您的scrollView的框架被垂直調整以適應鍵盤的屏幕邊框。當父視圖的框架縮小時,您的UIImageView也會縮小,這意味着它在您使用UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleHeight作爲UIImageView的autoResizingMask。
而是在你的UIImageView使用autoResizingMask的,應手動設置它的框架是大小通過bounds屬性的UIScrollView的框架相同:
imageView.frame = scrollView.bounds;
然後我們設置了滾動的contentSize是相同的大小作爲imageView。
scrollView.contentSize = imageView.frame.size;
這樣,你的ImageView的應該是你的滾動視圖的全尺寸,如果你調整滾動視圖框的大小不會移動。
相關問題
- 1. 如何使UIScrollview一次只顯示一個子視圖
- 2. iOS - touchesmoved每個視圖只有一次
- 3. UIScrollView - 僅調整一些子視圖的大小?
- 4. 帶有子視圖的ViewController,UIScrollView不可滾動的第一次
- 5. NSSplitView調整大小隻有一個子視圖
- 6. UIScrollView與iOS自動佈局約束:錯誤的子視圖的大小
- 7. iOS - touchesMoved只調用一次在子類UIScrollView
- 8. 放大後平移UIScrollView的子視圖
- 9. iOS 7 - UIScrollView子視圖不顯示
- 10. UIScrollView的大小和圖像的大小
- 11. UIScrollVIew只顯示第一個靜態子視圖,UIPageControl的代理
- 12. 使用大量子視圖優化UIScrollView
- 13. 容器視圖中的UIScrollView具有不正確的幀大小
- 14. UIScrollView內容大小剪切子視圖,當它不應該
- 15. 表格ng-submit加載一個子視圖,但只有一次
- 16. UIScrollView:只能縮放一些視圖
- 17. 重畫UIScrollView內的子視圖之一
- 18. 大子視圖適合另一個小子視圖
- 19. 放大在uiscrollview中的所有子視圖
- 20. 的UIScrollView沒有放大,但子視圖保持不變
- 21. 子視圖中的UIScrollView並根據內容的大小不能調整
- 22. UIScrollView的幻象子視圖
- 23. UIScrollView /子視圖的代表
- 24. 在一個大的UIScrollView中直觀地排列子視圖
- 25. 帶有一個大視圖的UIScrollview,或帶有多視圖的UITableview?
- 26. 子視圖大小錯誤
- 27. UIscrollview初始圖像大小
- 28. 只有在viewDidLoad中添加的子視圖會自動調整大小
- 29. iOS - 具有圖層的UIScrollVIew
- 30. 從UIScrollView中刪除所有子視圖?
好吧,真棒...有道理。我曾經認爲contentMode只是基於superview的幀大小而生效,但現在我看到文檔說它基於視圖本身的幀大小。謝謝! – user26691