2015-10-08 278 views
0

我使用的Xcode 7.0和測試在iOS 8.這是我的看法層次:子視圖中的UIScrollView並根據內容的大小不能調整

  • 滾動查看
    • 內容的瀏覽
      • 一些標籤和視圖
      • 地址視圖
        • 許多文本字段的,有序的垂直

含量視圖具有設置爲滾動視圖以下約束:

  • 頂部,
  • 底部,
  • 龍頭,
  • 落後,
  • align center x and
  • align center y。

滾動視圖內容大小設置是這樣的:

- (void)viewDidLayoutSubviews { 
    [super viewDidLayoutSubviews]; 
    [self.scrollView setContentSize:CGSizeMake(CGRectGetWidth(self.scrollView.bounds), CGRectGetMaxY(self.viewAddress.frame) + kICMarginStandard)]; 
} 

內容視圖但是沒有得到調整滾動視圖的內容高度,而只是屏幕的高度。即使滾動視圖正確滾動並且可以看到我的文本字段,但如果我點擊它們,它們也不會收到觸摸事件。

這裏是內容滾動到底部並且內容視圖具有紅色背景色的屏幕截圖。選擇國家接收觸摸事件,但拉鍊,城市和地址文本字段不:

Scrolled to bottom

我怎樣才能解決這個所以我所有的文本字段的工作嗎?

回答

0

由於您使用自動佈局,因此無需手動設置scrollView的contentSize。

所有你需要的是滾動視圖的子視圖之間的正確設置約束和添加約束到滾動視圖的邊緣,是這樣的:

scrollView.Top- | -contentView.Top- | -subview- | -subview- | - 。 ..- | -contentView.Bottom- | -scrollView.Bottom

和左右邊緣相同,因此scrollView的內容大小將自動計算。

檢查子視圖之間的約束兩次。

+0

謝謝。刪除align center y約束,setContentSize代碼和在Address和Content視圖之間添加底部約束來修復它。 – puzzler

相關問題