GridView 单元格向上滚动到 iOS 7 中的状态栏

Posted

技术标签:

【中文标题】GridView 单元格向上滚动到 iOS 7 中的状态栏【英文标题】:GMGridView cells scroll upto the statusbar in iOS 7 【发布时间】:2013-10-30 23:09:34 【问题描述】:

我有一个 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]我可以看到gridview 不会在状态栏下方溢出。但是在滚动时,GMGridViewCells 会位于状态栏下方。我不明白为什么。

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

这个显示滚动

【问题讨论】:

【参考方案1】:

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

GMGridView *gmGridView = [[GMGridView alloc] initWithFrame:CGRectMake(0,30,self.view.bounds.size.width,self.view.bounds.size.height-30)];

【讨论】:

@Adam- 使用 UINavgiationController 时不需要 30px 偏移量,因为它会适当地添加偏移量。 @bizsytes - 您实际上并没有向我们展示黑色的背景颜色,因此,从您发布的代码和屏幕截图中,我们无法判断 gmGridView 是否出现在状态栏后面(显然确实如此)。 1)您尝试过我发布的代码吗? 2)如何设置gmGridView.clipsToBounds = YES 嗯,我在问题中有点这个问题,这可能是您正在寻找的“因为如果我这样做 _gmGridView.backgroundColor = [UIColor blackColor]我可以看到网格视图不会在状态栏下方溢出. 但是当滚动时,GMGridViewCells 会在状态栏下方。" 所以我猜gmGridView.clipsToBounds = YES(或self.view.clipsToBounds = YES)也不起作用?

以上是关于GridView 单元格向上滚动到 iOS 7 中的状态栏的主要内容,如果未能解决你的问题,请参考以下文章

无限滚动IOS在gridview中一次垂直和水平滚动

Swift iOS -CollectionView 如何将单元格滚动到屏幕外

Objective -C XCTest:如何在表格单元格中一直向上滑动

向上滚动后我的单元格调整大小?

表格向上滚动并返回该单元格时的 UITableViewCell 背景图像问题

iOS UITableView 向上滚动时滚动位置跳跃