Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UICollectionView iOS8错误偏移_Ios8_Uicollectionview - Fatal编程技术网

UICollectionView iOS8错误偏移

UICollectionView iOS8错误偏移,ios8,uicollectionview,Ios8,Uicollectionview,令人惊讶的是,更新到iOS8后,我的应用程序的行为与iOS7中的不一样。 特别是,我用UICollectionView制作了一个日历。在iOS7 fine中,月份单元格显示正确。但是在iOS8。。。 我看到一个向上的偏移,就是细胞向上移动…我不明白,真的。。。。代码非常简单 - (void)viewDidLoad { [super viewDidLoad]; UINib * nib = [UINib nibWithNibName:@"AgendaYearCollectionCell"

令人惊讶的是,更新到
iOS8
后,我的应用程序的行为与
iOS7
中的不一样。 特别是,我用
UICollectionView
制作了一个日历。在iOS7 fine中,月份单元格显示正确。但是在
iOS8
。。。

我看到一个向上的偏移,就是细胞向上移动…我不明白,真的。。。。代码非常简单

- (void)viewDidLoad
{
    [super viewDidLoad];
 UINib * nib = [UINib nibWithNibName:@"AgendaYearCollectionCell" bundle:[NSBundle mainBundle]];
    [self.collectionView registerNib:nib forCellWithReuseIdentifier:agendaYearCellIdentifier];
    [self.collectionView setDelegate:self];
    [self.collectionView setDataSource:self];
    UICollectionViewFlowLayout *layout  = [[UICollectionViewFlowLayout alloc] init];
    layout.minimumInteritemSpacing      = 0;
    layout.minimumLineSpacing           = 1;
    [self.collectionView setCollectionViewLayout:layout];
}
集合不可滚动。如果我使其可滚动,我可以滚动并查看第一行的单元格。但我不想要可滚动的收藏。 我认为问题在插图中。事实上,如果我玩:

- (UIEdgeInsets)collectionView:
(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
    return UIEdgeInsetsMake(40, 2, 50, 60);

 }
我最终能再次坐到第一排。但是如何计算所有屏幕/设备的值?我的应用程序仅适用于横向,也仅适用于iPad。
苹果改变了什么?

您的收藏视图顶部偏移量为负值。提供更多的代码可能会有所帮助,但是让我们先试试这个

你打过电话:

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView
                    layout:(UICollectionViewLayout *)collectionViewLayout
    insetForSectionAtIndex:(NSInteger)section
我不会叫它,除非你想为不同的部分插入不同的插图。看起来你只有一个部分。我将使用流布局对其进行配置:

flowLayout.sectionInset = CGSizeMake(40.0, 2.0, 50.0, 60.0);
我建议放弃对iOS 7的支持,所有使用iOS 7的设备都可以升级到8

如何计算所有屏幕/设备的值

任何iPad的偏移量都应该相同。即使苹果将推出更大屏幕的iPad,你的屏幕偏移量也将是一样的。如果您想要支持iPhone的通用应用程序,您可以进行设备状态检查,并根据设备模式分配不同的号码


而且,它可能是顶部的东西。你弄乱导航栏了吗?从图片上看不清楚。

我现在也有类似的问题。对我来说,细胞的内容物似乎向下移动了。我在每个单元格中都有一个UIImageView,与在iOS 7/6上运行或在iOS 8设备上使用app store上的现有应用程序相比,图像显示向下大约20点-差异可能是编译时使用的SDK(iOS 7 SDK与新iOS 8 SDK)。如果我有足够的内容可以在集合视图中滚动,任何后续刷新的单元格看起来都正常。