我的 collectionView 函数( sizeForItemAt indexPath )不起作用
my collectionView function( sizeForItemAt indexPath ) does'nt work
嗨,工程师们,祝你好运,基本上我想连续调整我的 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 , layout collectionViewLayout: UICollectionViewLayout , sizeForItemAt indexPath : IndexPath ) -> CGSize {
return CGSize(width: 200, height: 300)
}
而是依赖于内容的固有大小(即模拟器中的 UIImageView 和 UILabel)。如果您设置相对于您的超级视图的内部内容的大小,那么 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
) 将被调用。
检查一下,如果您在这里发现任何问题,请告诉我。
嗨,工程师们,祝你好运,基本上我想连续调整我的 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 , layout collectionViewLayout: UICollectionViewLayout , sizeForItemAt indexPath : IndexPath ) -> CGSize { return CGSize(width: 200, height: 300) }
而是依赖于内容的固有大小(即模拟器中的 UIImageView 和 UILabel)。如果您设置相对于您的超级视图的内部内容的大小,那么 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
) 将被调用。
检查一下,如果您在这里发现任何问题,请告诉我。