ios - UIScrollView ContentSize 高度太大

标签 ios objective-c uiscrollview

我有一个只能水平滚动的 UIScrollView。 ScrollView 固定在屏幕底部。我已将自动布局约束设置为固定高度。我将 contentSize 设置为固定大小。

但是,当我运行该应用程序时,内容显示一半超出了屏幕底部。它会垂直滚动大约 200 像素。

我在 ScrollView 上方固定了一张 map 和一个标签,布局看起来完全符合我的要求,除了 ScrollView 的内容似乎不正确。这是我写的代码:

在我的 .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,所以我错过了什么吗?有谁知道尺码问题可能来自哪里?

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

编辑:

这个 View 在导航 Controller 中,我在第一次加载时将导航栏从 hidden = YES 设置为 hidden = NO。我注意到当我将其隐藏时内容高度不同,所以这一定与它有关。

最佳答案

尝试在保持自动布局设置的情况下设置 ScrollView 的内容大小 int“viewDidLayoutSubviews”方法。

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

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

如果您仍然遇到问题,请告诉我。

关于ios - UIScrollView ContentSize 高度太大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33353873/

相关文章:

ios - 如何在 iOS 中解析 mapquest geocode JSON

ios - 如何在短时间内将新插入的 UITableViewCell 的 alpha 设置为 0

ios - 在 subview 上绘制矩形?

iphone - 如何创建无限滚动的UIScrollView?

objective-c - UIScrollView 防止向一个方向滚动,而不管 contentSize/Offset

iphone - iOS 设置.plist

c# - Xamarin 固定导航栏

ios - UITableView + 可触摸的UIView/UIScrollView behin

ios - 如何找到 ScrollView 内容偏移 Y 点以使所选文本可见。

ios - 如何使用 SFAuthenticationSession 注销