Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/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
Ios 未调用UICollectionView布局委托方法_Ios_Swift_Uicollectionview_Uicollectionviewcell_Uicollectionviewlayout - Fatal编程技术网

Ios 未调用UICollectionView布局委托方法

Ios 未调用UICollectionView布局委托方法,ios,swift,uicollectionview,uicollectionviewcell,uicollectionviewlayout,Ios,Swift,Uicollectionview,Uicollectionviewcell,Uicollectionviewlayout,我正在初始化一个UICollectionView,如下所示,我希望不同的部分有不同的行距 let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() layout.scrollDirection = UICollectionViewScrollDirection.Horizontal var baseCollectionView = UICollectionView(frame: CGRectZero, co

我正在初始化一个
UICollectionView
,如下所示,我希望不同的部分有不同的行距

 let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
 layout.scrollDirection = UICollectionViewScrollDirection.Horizontal

 var baseCollectionView = UICollectionView(frame: CGRectZero, collectionViewLayout: layout)
 baseCollectionView.backgroundColor = UIColor.clearColor()
 baseCollectionView.translatesAutoresizingMaskIntoConstraints = false
 baseCollectionView.showsVerticalScrollIndicator = false
 baseCollectionView.delegate = self
 baseCollectionView.dataSource = self
然后定义如下的布局方法

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat
{
    switch section  {
    case 0:
        return 10.0
    case 1:
        return 10.0
    case 2 :
        return 10.0
    case 3:
        return 10.0
    case 4 :
        return 0.0
    case 5 :
        return 0.0
    case 6 :
        return 0.0
    case 7 :
        return 0.0
    default:
        return 0.0
    }
}
以及

和其他代理一样,
minimuminetemspaccingforSectionatindex
被调用,但是
minimumlinespaccingforSectionat
代理方法没有被调用,如何解决这个问题,我错在哪里

我也遵守了授权协议

class MyViewController: UIViewController , UICollectionViewDelegateFlowLayout , UICollectionViewDelegate , UICollectionViewDataSource
给你

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize
{
    switch section {
    case 0:
        return CGSizeMake(140.0,self.contentView.frame.size.height)
    case 1:
        return CGSizeMake(140.0,self.contentView.frame.size.height)
    case 2 :
        return CGSizeMake(140.0,self.contentView.frame.size.height)
    case 3 :
        return CGSizeMake(140.0,self.contentView.frame.size.height)
    case 4:
        return CGSizeMake(self.contentView.frame.size.width,self.contentView.frame.size.height)
    case 5:
        return CGSizeMake(self.contentView.frame.size.width / 2.0,self.contentView.frame.size.height)
    case 6:
        return CGSizeMake(75.0, self.contentView.frame.size.height)
    case 7:
        return CGSizeMake(((self.contentView.frame.size.width - 40.0) / 3.0), 150.0)
    default:
        return CGSizeZero

    }
}
对于所有其他人来说,实际上,从我的服务器发送的显示设计用于设置各种常量。

您这样做了吗

@interface YourViewController : UIViewController <UICollectionViewDelegate, UICollectionViewDataSource>
@界面YourViewController:UIViewController

函数名在签名中没有
索引

从文件中

函数签名是

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat
i、 e.
分段的最小材料间距


不是
minimuminetemspacingforsectionatindex

您的代码正在工作,请这样更改

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat
{}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat
{}

很难相信这是一个活生生的密码。。。从语法上看,它似乎根本不可编译。你怎么会有这种感觉?我将只发布我认为获得答案所必需的部分代码,而不是我的全部代码库@阿维纳什·夏尔马最后的评论完全没有必要,也没有任何帮助。仅供参考,如果返回相同的内容,您可以将案例分组。你也可以进行模式匹配<代码>案例0…3:return 10
ad
default:return 0
我已经写到我已经添加了所有需要的方法,如果我不实现该方法,我的单元格将不会出现在all@AvinashSharma,可能集合视图中没有足够的单元格,这就是为什么它不需要调用该方法的原因,因为如果没有足够的单元格来容纳至少2行,那么行距是不相关的,因此,系统不关心调用它。我给出此帧只是为了在正确设置帧后初始化。感谢您指出这一点,尽管我最初的问题是,
minimumlinespacingforsection
没有被调用,我将其更改为分区索引的
最小行间距
,它可以工作,因为我使用的是Swift 2.3而不是3.0,所以错误在于语法。你的回答帮助我调查了一下,谢谢
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat
{}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat
{}