UICollectionView scrollToItem() 不起作用

今天在做东西的时候又遇到这样一个问题,把 UICollectionView 嵌套在 UIViewController 中使用,在想用 scrollToItem() 方法时,怎么都不起作用,找了半天,原来是 位置属性设置错了。

原本的代码是

// viewDidLoad 里面
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "定位", style: .plain, target: self, action: #selector(locatSelectedCell))

// 外部方法
func locatSelectedCell () {
        if let lastSelectedIndex = lastSelectionID {
            DispatchQueue.main.async {
                self.thingsCollectionView.scrollToItem(at: IndexPath(item: lastSelectedIndex, section: 0), at: .centeredHorizontally, animated: true)
            }
        }
    }

错误就出在 at: .centeredHorizontally ,因为我的 collectinoView 的方向是纵向的,所以应该是 at: .centeredVertically 纵向居中显示对应的 cell

    func locatSelectedCell () {
        if let lastSelectedIndex = lastSelectionID {
            DispatchQueue.main.async {
                self.thingsCollectionView.scrollToItem(at: IndexPath(item: lastSelectedIndex, section: 0), at: .centeredVertically, animated: true)
            }
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十月ooOO

许个愿,我帮你实现

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值