簡體   English   中英

UIScrollView中的子視圖不會根據內容大小調整大小

[英]Subview in UIScrollView doesn't resize according to content size

我正在使用Xcode 7.0並在iOS 8上進行測試。這是我的視圖層次結構:

  • 滾動視圖
    • 內容檢視
      • 一些標簽和視圖
      • 地址視圖
        • 多個文本字段,垂直排列

內容視圖對滾動視圖設置了以下約束:

  • 最佳,
  • 底部,
  • 領導,
  • 尾隨
  • 將中心x和
  • 對齊中心y。

滾動視圖的內容大小設置如下:

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

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

這是一個屏幕截圖,其中內容滾動到底部,並且“內容”視圖具有紅色背景色。 選擇國家/地區會接收觸摸事件,但郵政編碼,城市和地址文本字段不會:

滾動到底部

如何解決此問題,以便所有文本字段都能正常工作?

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

您需要做的是在scrollView的子視圖之間正確設置約束,並在scrollView的邊緣添加約束,例如:

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

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

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

暫無
暫無

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

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