Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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 我的collectionView函数(sizeForItemAt indexPath)没有';nt工作_Swift_Uicollectionview - Fatal编程技术网

Swift 我的collectionView函数(sizeForItemAt indexPath)没有';nt工作

Swift 我的collectionView函数(sizeForItemAt indexPath)没有';nt工作,swift,uicollectionview,Swift,Uicollectionview,各位工程师,祝你们好运,基本上我想连续调整collectionView照片的大小,但当我使用名为sizeForItemAt indexPath的collectionView方法时,它在模拟器上对我不起作用。 在使用此功能之前,这是我的模拟器: 这是我的viewDidLoad和函数代码: override func viewDidLoad() { super.viewDidLoad() print("\n iid is \(cid)") fetchO

各位工程师,祝你们好运,基本上我想连续调整collectionView照片的大小,但当我使用名为sizeForItemAt indexPath的collectionView方法时,它在模拟器上对我不起作用。 在使用此功能之前,这是我的模拟器:

这是我的viewDidLoad和函数代码:

override func viewDidLoad() {
    super.viewDidLoad()
    print("\n iid is \(cid)")
     fetchOffer()
     collectionView.dataSource = self
     collectionView.delegate = self
    collectionView.collectionViewLayout = UICollectionViewFlowLayout()

}
func collectionView(_ collectionView: UICollectionView , layout collectionViewLayout: UICollectionViewLayout , sizeForItemAt indexPath : IndexPath ) -> CGSize {
    return CGSize(width: 200, height: 300)
}
在使用这些之后,我的模拟器向我显示:


有人知道这件事吗?

我会删除委托方法:

func collectionView(collectionView:UICollectionView,布局collectionViewLayout:UICollectionViewLayout,sizeForItemAt indexPath:indexPath)->CGSize{ 返回CGSize(宽:200,高:300) }

而是依赖于内容的固有大小(即模拟器中的UIImageView和UILabel)。如果设置内部内容相对于superview的大小,则CollectionViewCell将自行调整大小

class YourVC: UIViewController, UICollectionViewDelegateFlowLayout, UICollectionViewDataSource, UICollectionViewDelegate {
override func viewDidLoad() {
    super.viewDidLoad()
    print("\n iid is \(cid)")
     fetchOffer()
     collectionView.dataSource = self
     collectionView.delegate = self

}
}
您需要将
UICollectionViewDelegateFlowLayout
添加到
UIViewController
中,然后将调用它(
layout collectionViewLayout


如果您在此处发现任何问题,请检查并通知我。

从情节提要中将“估计大小”设置为“无”。我设置了它,但仍然不适用于我。您是否添加了此委托UICollectionViewDelegateFlowLayout?同时删除此行“``collectionView.collectionViewLayout=UICollectionViewFlowLayout()```您使用过任何flowlayout吗?谢谢,当您配置UI时,我该怎么做?使用自动布局约束、UIStackView或框架(或组合)来设置UI组件的各个元素。非常感谢兄弟,现在我有了一个我想要的结果,我希望您能得到有用且有帮助的答案questions@Alikazemi欢迎光临:)。关于
UICollectionView
,您还有什么其他疑问吗?如果我有问题的话,现在不行,我会在这里提到新问题