Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.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
Swift iOS-当水平集合视图单元格即将超过屏幕边界时,如何截断这些单元格_Ios_Count_Uicollectionviewcell_Collectionview_Uiscreen - Fatal编程技术网

Swift iOS-当水平集合视图单元格即将超过屏幕边界时,如何截断这些单元格

Swift iOS-当水平集合视图单元格即将超过屏幕边界时,如何截断这些单元格,ios,count,uicollectionviewcell,collectionview,uiscreen,Ios,Count,Uicollectionviewcell,Collectionview,Uiscreen,我有一个collectionView单元格,它水平显示单元格。我只想在屏幕上显示一定数量的单元格,在我想显示的单元格数量之后,…或表示有更多可用单元格的内容。我不希望用户滚动到更多单元格 因为有不同的屏幕尺寸,比如iphone4/5/6/7/iPad等。。我不想把确切数量的项目显示出来。取而代之的是,我想根据屏幕大小截取项目数量,例如,在iPhone 7+英寸的紧凑型尺寸级别上,屏幕上至少可以容纳5个电池,但在iPhone 4上,屏幕上只能容纳3个电池,而在iPad上可能容纳20个电池 我想我会

我有一个collectionView单元格,它水平显示单元格。我只想在屏幕上显示一定数量的单元格,在我想显示的单元格数量之后,
或表示有更多可用单元格的内容。我不希望用户滚动到更多单元格

因为有不同的屏幕尺寸,比如iphone4/5/6/7/iPad等。。我不想把确切数量的项目显示出来。取而代之的是,我想根据屏幕大小截取项目数量,例如,在iPhone 7+英寸的紧凑型尺寸级别上,屏幕上至少可以容纳5个电池,但在iPhone 4上,屏幕上只能容纳3个电池,而在iPad上可能容纳20个电池

我想我会这样做:

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {

    //I know this is comparing an Int to a CGRect and it won't work
    if items.count > UIScreen.main.bounds.width{
         //stop count and display truncation dots ...
    }
    return self.items.count
}

我将如何实现这一点?

要实现这一点,您需要实现协议方法

collectionView(_ collectionView: UICollectionView, 
                  layout collectionViewLayout: UICollectionViewLayout, 
           sizeForItemAt indexPath: IndexPath) -> CGSize

您需要手动返回每个单元格的大小,因此在这种情况下,您将根据屏幕大小计算单元格的宽度。

谢谢,我会尝试。如何显示截断点。。。?我在想,也许我有一个特定的t单元,里面已经有点了,当这些单元接近屏幕的边界时,截短的单元就会最后显示出来。除非有更好的方法?在我的回复中添加注释,否则您需要根据屏幕情况计算在哪个屏幕上返回所需部分中的项目数,然后添加最后一行以显示点。谢谢,我会尝试的