1

我有一个 UIViewController,我将其设置为 UINavigationController 的 rootviewcontroller。然后在 viewcontroller 我创建一个 gmgridview 像这样:

NSInteger spacing = 15;

GMGridView *gmGridView = [[GMGridView alloc] initWithFrame:self.view.bounds];
gmGridView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

[self.view addSubview:gmGridView];
_gmGridView = gmGridView;

_gmGridView.style = GMGridViewStyleSwap;
_gmGridView.itemSpacing = spacing;
_gmGridView.minEdgeInsets = UIEdgeInsetsMake(spacing, spacing, spacing, spacing);
_gmGridView.centerGrid = YES;
_gmGridView.actionDelegate = self;
_gmGridView.sortingDelegate = self;
_gmGridView.transformDelegate = self;
_gmGridView.dataSource = self;

如果我理解正确的话,根据 iOS7 的 UI 指南,如果您使用 UINavigationController,它会自动处理在状态栏下流动的视图。这似乎对它的大部分工作。因为如果我这样做,_gmGridView.backgroundColor = [UIColor blackColor]我可以看到网格视图不会在状态栏下方溢出。但是在滚动时,GMGridViewCells 会位于状态栏下方。我不明白为什么。

此图像显示了具有黑色背景颜色的网格视图。请注意,状态栏背景不是黑色的,这告诉我gridview 没有出现在它后面。

在此处输入图像描述

这个显示滚动

在此处输入图像描述

4

1 回答 1

1

在 iOS7 中,状态栏是透明的。如果您不希望状态栏后面出现任何内容,请将根视图的框架设置为距屏幕顶部大约 30 处,并确保clipsToBounds = YES.

GMGridView *gmGridView = [[GMGridView alloc] initWithFrame:CGRectMake(0,30,self.view.bounds.size.width,self.view.bounds.size.height-30)];
于 2013-10-30T23:15:04.763 回答