UICollectionVIew:如何删除第一个单元格顶部行的空间

2020/12/16 22:11 · ios ·  · 0评论

我在Interface Builder中进行了这种安排,所有属性均设置为零。

在此处输入图片说明

但是,当我同时在设备和模拟器上运行它时,它看起来像这样

在此处输入图片说明

细胞上方的空间来自哪里?

所以我尝试在这样的代码中为UICollectionViewFlowLayout设置这些属性

UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
    layout.headerReferenceSize = CGSizeZero;
    layout.footerReferenceSize = CGSizeZero;
    layout.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0);
    layout.minimumInteritemSpacing = 0;
    layout.minimumLineSpacing = 0;
    layout.itemSize = CGSizeMake(103, 119);

    self.calendarView.collectionViewLayout = layout;

但我没有运气。

我如何摆脱这个空间?谢谢。

UICollectionView是具有contentInset属性的UIScrollView类的后代,设置-20 top inset可解决此问题

[self.calendarView setContentInset:UIEdgeInsetsMake(-20, 0, 0, 0)];

但是,问题来自UIViewController的automaticallyAdjustsScrollViewInsets属性。通过文档:

默认值为YES,它允许视图控制器根据状态栏,导航栏以及工具栏或选项卡栏占用的屏幕区域来调整其滚动视图插图。如果要自己管理滚动视图插图调整,请设置为NO。

这就是为什么我们获得状态栏调整后的内容插图的原因。最好禁用自动调整,而不要手动设置与结果图片不匹配的值。

[self setAutomaticallyAdjustsScrollViewInsets:NO];

另一种方法是选择ViewController并取消选中界面生成器中的Adjust Scroll View Insets复选框

在此处输入图片说明

它与下面的代码行基本相同。但是您必须立即在界面生成器中看到所做的更改。

automaticallyAdjustsScrollViewInsets = false

以下是一些调整后的迅速答案:

我有一个集合视图,只占视图的一小部分。我用了:

self.automaticallyAdjustsScrollViewInsets = false

删除使我的布局混乱的顶部间距。这段代码对我不起作用:

self.paperCollectionView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0)

而且这个也没有:

self.paperCollectionView.contentInset = UIEdgeInsetsMake(-20, 0, 0, 0)

但这可能是因为我没有使用UICollectionViewController,而是使用了UICollectionView。

这是代码的较大部分,用于提供更多上下文:
在此处输入图片说明

iOS 11不建议使用automaticallyAdjustsScrollViewInsets,因此collectionView.contentInsetAdjustmentBehavior = .never建议使用

你也可以去

[self.calendarView setContentInset:UIEdgeInsetsMake(0, 0, 0, 0)];
[self setAutomaticallyAdjustsScrollViewInsets:NO];

默认情况下,集合视图上会添加集合视图标题滚动空间,您无需从顶部添加-20,因为它可能会反映设备问题

您可以在Interface Builder中执行此操作,方法是转到“滚动视图”部分,然后将“内容插入”下拉列表更改为“从不”。

UICollectionView ScrollView ContentInset永不

斯威夫特3:

self.automaticallyAdjustsScrollViewInsets = false

这个答案很奇怪,但是如果您正在Interface Builder中工作并且在视图控制器中嵌入了集合视图,则该视图受选项卡栏控制器的控制,该选项卡是导航控制器的根视图控制器。

  • 将工具栏添加到具有集合视图的视图控制器
  • 在层次结构中移动工具栏,使其在“集合”视图上方

如果工具栏在“收藏夹视图”上方,则从原型“收藏夹视图”单元的顶部到“收藏夹视图”之间将没有空间。如果没有工具栏或工具栏在“收藏夹视图”下方,则“收藏夹视图”顶部和“收藏夹视图”单元格之间将有空间。在情节提要预览中和运行应用程序时都是如此。表视图会发生相同类型的事件。

最近在Xcode版本8.3.3中对此进行了测试。
集合视图单元格和工具栏依赖性

本文地址:http://ios.askforanswer.com/uicollectionviewruheshanchudiyigedanyuangedingbuxingdekongjian.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!