我有一個應該只能水平滾動的UIScrollView。滾動視圖固定在屏幕的底部。我已將自動佈局約束設置爲固定高度。我將contentSize設置爲固定大小。UIScrollView ContentSize高度過大
但是,當我運行應用程序時,內容顯示在屏幕底部的一半。它將垂直滾動,看起來像是大約200像素。
我有一張地圖和一個標籤固定在滾動視圖的上方,佈局看起來完全如我所願,除了滾動視圖的內容似乎關閉。這是我寫的代碼:
在我.h文件中:
@interface MapViewController : UIViewController <UIScrollViewDelegate>
在viewDidLoad中
:
self.scrollView.delegate = self;
[self.scrollView setContentSize:CGSizeMake(600, 100)];
// add some content
UIView *personView = [[UIView alloc] initWithFrame:CGRectMake(0, 8, 100, self.scrollView.frame.size.height-16)];
personView.backgroundColor = [UIColor cyanColor];
UIView *personView2 = [[UIView alloc] initWithFrame:CGRectMake(110, 8, 100, self.scrollView.frame.size.height-16)];
personView2.backgroundColor = [UIColor redColor];
UIView *personView3 = [[UIView alloc] initWithFrame:CGRectMake(220, 8, 100, self.scrollView.frame.size.height-16)];
personView3.backgroundColor = [UIColor blueColor];
UIView *personView4 = [[UIView alloc] initWithFrame:CGRectMake(330, 8, 100, self.scrollView.frame.size.height-16)];
personView4.backgroundColor = [UIColor orangeColor];
[self.scrollView addSubview:personView];
[self.scrollView addSubview:personView2];
[self.scrollView addSubview:personView3];
[self.scrollView addSubview:personView4];
我不使用的UIScrollView經常,所以我失去的東西?有誰知道尺寸問題可能來自哪裏?
此外,我做了的NSLog在框架的高度和contentSize高度和都等於100
編輯:
該視圖是在導航控制器和I從隱藏=設定導航欄YES在第一次加載時隱藏= NO。我注意到,當我隱藏它時,內容高度是不同的,所以這一定與它有關。
如果您使用約束,則不應設置'contentSize'。你應該使用約束來控制'contentSize'。閱讀[技術說明TN2154:UIScrollView和Autolayout](https://developer.apple.com/library/ios/technotes/tn2154/_index.html)。 –
@robmayoff是否有解決contentSize約束問題的方法,看起來像是更簡單的解決方案。你也在你的迴文結尾處留下了迴文結束時的巴拿馬:) –