ios - UICollectionView。如何在没有动画的情况下使用不同的元素(不仅是第一个)呈现 viewController?
问题描述
我需要呈现 UICollectionView,带有不同的元素(不仅是第一个),没有动画。
我的代码:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
DispatchQueue.main.async {
var newPoint = self.productCollectionView.contentOffset
newPoint.x = (UIScreen.main.bounds.width * CGFloat(self.currentPage)) + 1
self.productCollectionView.contentOffset = newPoint
}
}
解决方案
而不是设置contentOffset
,调用setContentOffset(_:, animated:)
具有animated:
值的方法false
。
另外我建议删除async
并将您的代码移动到viewDidLayoutSubviews
. 这样,您的代码将在用户看到任何内容之前运行,但在实现视图的初始布局之后。此方法可以多次调用,因此您必须使用 Bool 实例属性来确保它只运行一次。
推荐阅读
- r - getDescriptionStatsBy 仅在因子少于三个级别时显示一个级别
- nlp - 按个人从消息/对话中提取常用/典型短语
- sql - 在 SQL 中计数时如何分隔列?
- r - DiagrammeR - Digraph 流程图 - 箭头上标签的位置和方向
- google-cloud-platform - 如何在 Vertex AI 中安排自定义训练作业的重复运行
- deep-learning - 如何从头开始构建“ner_ontonotes_bert_mult”模型
- ios - 核心数据检索问题
- angular - Angular 2 Lifecycle Hooks、变更检测和 ngZone
- api - 使用基于 Office 365 登录的访问令牌创建 mvc rest api
- javascript - Electron javascript 仅在 devtools 打开时工作