UIScrollView ContentSize高度太大

时间:2015-10-26 19:19:11

标签: ios objective-c uiscrollview

我有一个只能水平滚动的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,所以我错过了什么?有谁知道尺寸问题可能来自哪里?

我还在帧高和contentSize高度上做了一个NSLog,两者都等于100。

修改

此视图位于导航控制器中,我在第一次加载时将导航栏从hidden = YES设置为hidden = NO。我注意到当我隐藏它时内容高度不同,所以这必须与它有关。

1 个答案:

答案 0 :(得分:2)

尝试设置scrollView的内容大小int&#34; viewDidLayoutSubviews&#34;保持自动布局设置的方法。

-(void)viewDidLayoutSubviews
{
  [self.scrollView setContentSize:CGSizeMake(required_width, required_height)];
}

同时检查设置为Storyboard中ViewController的导航栏。如果有,请尝试将其删除。

请知道你是否还有问题。