gpt4 book ai didi

ios - 为什么 UICollectionView 的委托(delegate)方法不起作用?

转载 作者:行者123 更新时间:2023-11-29 05:18:43 25 4
gpt4 key购买 nike

我创建了一个collectionView,并使其委托(delegate)符合附加到主ViewControllerUICollectionViewDelegateFlowLayout协议(protocol),以便修改UICollectionView 的 单元格。最初我是这样做的:

override func viewDidLoad() {
super.viewDidLoad()
self.collectionView.delegate = self

}

然后我意识到这不起作用,因为出现了错误,所以我修复了它:

 override func viewDidLoad() {
super.viewDidLoad()
self.collectionView.delegate = self as? UICollectionViewDelegateFlowLayout

}

问题是我尝试在 ViewController 中实现的每个方法在运行时似乎都不起作用。

f.e.我在这里实现了这个方法:

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

return CGSize(width: collectionView.frame.width/3, height: collectionView.frame.width/3)

}

但它在应用程序运行期间不起作用。

最佳答案

"so I fixed it doing this"

您使错误消失,但没有修复它。您需要使您的 View Controller 类真正采用 UICollectionViewDelegateFlowLayout,方法是将其添加到其类声明中,如下所示:

class ProfileViewController: UIViewController, UICollectionViewDelegateFlowLayout {

或者将其添加到 View Controller 的扩展中,如下所示:

extension ProfileViewController: UICollectionViewDelegateFlowLayout {

关于ios - 为什么 UICollectionView 的委托(delegate)方法不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58906001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com