每个页面上的 UIScrollview 中的单个 UIView
Single UIView in UIScrollview on each page
我想在带有分页的滚动视图中使用 UIButtons 和 UILabels 创建 10 个 UIViews启用。
我想在滚动视图的每个页面上重复使用视图。我不想使用循环创建 10 个视图。
我该怎么做?
还有一个问题。我想在滚动时为上一个和下一个视图提供一些动画效果。那么如何识别视图?
您可以使用 UICollectionView 来做到这一点。
您无需创建自己的流布局 - 只需使用 UICollectionViewFlowLayout,并更改项目大小和滚动方向。
我会使用 3 UIView
s - 一个用于当前显示视图,一个用于上一个视图,一个用于下一个视图。滚动时,我会更新这些视图(或约束)的框架,例如:
- 初始状态:
- 'Previous view'帧数:
(-100, 0, 100, 100)
- 'Current view'帧数:
(0, 0, 100, 100)
- 'Next view'帧数:
(100, 0, 100, 100)
- 滚动一页后:
- 'Previous view'帧数:
(0, 0, 100, 100)
- 'Current view'帧数:
(100, 0, 100, 100)
- 'Next view'帧数:
(200, 0, 100, 100)
这些视图仅用于展示目的,因此无需识别视图本身;我只需要有一个当前页面索引,我还需要在页面滚动后使用基于数据模型的内容数据更新每个视图,例如具有以下索引的数组元素:(currentPageIndex - 1)
、currentPageIndex
、(currentPageIndex + 1)
.
一定要用UICollectionView。优点?
- 更容易 add/remove 添加页面。如果您想更改订单等怎么办? ;)
- 可重用元素(节省内存)。
- 在 IB 中易于设计。
编辑:
UICollectionView 也使用 UIScrollViewDelegate。
您可以随时使用 DMLazyScrollView 库。
我经常使用它,它就是你想要的:)
我想在带有分页的滚动视图中使用 UIButtons 和 UILabels 创建 10 个 UIViews启用。
我想在滚动视图的每个页面上重复使用视图。我不想使用循环创建 10 个视图。
我该怎么做?
还有一个问题。我想在滚动时为上一个和下一个视图提供一些动画效果。那么如何识别视图?
您可以使用 UICollectionView 来做到这一点。 您无需创建自己的流布局 - 只需使用 UICollectionViewFlowLayout,并更改项目大小和滚动方向。
我会使用 3 UIView
s - 一个用于当前显示视图,一个用于上一个视图,一个用于下一个视图。滚动时,我会更新这些视图(或约束)的框架,例如:
- 初始状态:
- 'Previous view'帧数:
(-100, 0, 100, 100)
- 'Current view'帧数:
(0, 0, 100, 100)
- 'Next view'帧数:
(100, 0, 100, 100)
- 'Previous view'帧数:
- 滚动一页后:
- 'Previous view'帧数:
(0, 0, 100, 100)
- 'Current view'帧数:
(100, 0, 100, 100)
- 'Next view'帧数:
(200, 0, 100, 100)
- 'Previous view'帧数:
这些视图仅用于展示目的,因此无需识别视图本身;我只需要有一个当前页面索引,我还需要在页面滚动后使用基于数据模型的内容数据更新每个视图,例如具有以下索引的数组元素:(currentPageIndex - 1)
、currentPageIndex
、(currentPageIndex + 1)
.
一定要用UICollectionView。优点?
- 更容易 add/remove 添加页面。如果您想更改订单等怎么办? ;)
- 可重用元素(节省内存)。
- 在 IB 中易于设计。
编辑: UICollectionView 也使用 UIScrollViewDelegate。
您可以随时使用 DMLazyScrollView 库。
我经常使用它,它就是你想要的:)