UIScrollView的回调

       背景需求:页面如果已经在最底部,收到新消息就自动插入消息并滚动到最底部;如果不在最底部,则展示新消息提醒,点击新消息滚动到最低不。如此重复。

具体实现是在UIScrollView的scrollViewDidEndDragging、scrollViewDidEndDecelerating两个回调判断当前页面是否在最底部。但是竟然有bug,当时用的滚动是scrollRectToVisible:animated:。

       在很久以前,我所在团队是hook UIScrollView的scrollViewDidEndDragging、scrollViewDidEndDecelerating两个回调来进行自动化打点。实在不明白。

后来我在网上找到答案。见UIScrollView的滚动、停止

       当setContentOffset:animated:、scrollRectToVisible:animated:当有动画时,走的回调是scrollViewDidEndScrollingAnimation。如果没有动画,则没有回调。

类似的还有UITableView的scrollToRowAtIndexPath:atScrollPosition:animated:、selectRowAtIndexPath:animated:scrollPosition:。

       简单而又复杂,这么“细致”的东西可能会被归为经验吧。但是做为一个iOS开发,怎么才能把这些吃透呢?怎么系统完整的学习iOS?

上一篇:[转载] TopCoder - Algorithm Tutorials - Sorting - timmac


下一篇:【机器学习】Optuna机器学习模型调参(LightGBM、XGBoost)