gpt4 book ai didi

ios - UICollectionView 设置默认位置

转载 作者:搜寻专家 更新时间:2023-10-31 22:56:46 31 4
gpt4 key购买 nike


我有一个包含 3 个单元格的 CollectionView,它们横跨整个设备的屏幕,基本上代表了我的 3 个主要 View 。
我启用了分页功能,因此它现在基本上与 iOS 主屏幕完全一样。
我的问题是我希望此 CollectionView 的“默认”位置等于 view.frame.width 以便第二个 Cell 是“默认” View ,我可以左右滑动以获得我的次要观点。
我已经尝试通过

collectionView.scrollToItem()

collectionView.scrollRectToVisible()

还有

collectionView.setContentOffset()

但它们似乎都只在 View 加载后才起作用(我通过导航栏中的按钮尝试了它们)。提前谢谢你!


编辑:
现在这可行了,但我在那个中间单元格中还有另一个 Collection View ,它包含一个小的 2 页 UICollectionView 列表,它们实际上是 UICollectionViewCell 子类的对象称为 PersonCell 每个持有一个 UICollectionView。我也希望这些 UICollectionViews 滚动到索引 1,这是我的代码:

for tabcell in (collectionView?.visibleCells)! {
if let maincell: MainCell = tabcell as? MainCell {
for cell in maincell.collectionView.visibleCells {
if let c = cell as? PersonCell {
c.collectionView.scrollToItem(at: (NSIndexPath(item: 1, section: 0) as IndexPath), at: [], animated: false)
}
}
}
}

这是在我的“根”CollectionViewControllerviewDidLayoutSubviews 中执行的。



编辑 2:现在我尝试在 MainCell 类(它是一个 UICollectionViewCell 子类)中使用以下代码:

func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
let personCell = cell as! PersonCell
personCell.collectionView.scrollToItem(at: (NSIndexPath(item: 1, section: 0) as IndexPath), at: [], animated: false)
}



编辑 3:
长话短说,我基本上需要一个委托(delegate)方法,一个单元格被添加到 UICollectionView 之后调用。

最佳答案

你试过了吗[self.collectionView scrollToItemAtIndexPath:indexPath atScrollPosition:UICollectionViewScrollPositionCenteredHorizontally animated:YES];

尝试调用 viewDidLayoutSubviews 中的代码

关于ios - UICollectionView 设置默认位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45091558/

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