一、效果图
二、使用方法
三、文件类说明
【XZPhotoModel】照片模型类:解析数据
【roster.plist】花名册文件:存储本地数据
【XZRosterView】花名册视图:组装简介视图、照片流视图
【XZBiographyView】简介视图:控制基本信息展示。
【XZBiographyCell】简介视图Cell:展示基本信息
【XZPhotoFlowView】照片流视图:控制照片视图展示、操作
【XZPhotoView】照片视图:展示照片
四、简介视图(XZBiographyView)
1、内置UICollectionView,禁止手动滑动
2、当照片流视图(XZPhotoFlowView)中,照片滑动停止时,根据照片位置更新偏移量。
- (void)setCurrentIndex:(NSInteger)currentIndex {
if (_currentIndex == currentIndex) return;
//滑动到显示位置
[self.bgCollectionView setContentOffset:CGPointMake(0.0, currentIndex*self.frame.size.height) animated:YES];
_currentIndex = currentIndex;
}
五、照片流视图(XZPhotoFlowView)实现原理
1、scrollView作为背景视图,控制滑动操作
2、取照片视图(XZPhotoView):复用池中有就直接取出;否则创建新的,并添加到使用池
3、scrollView滚动时
a、计算展示的首图(显示的照片中,左数第一张)位置
b、scrollView滑动“一张首图宽度+交错宽度(2张照片重叠宽度)”,首图移动等比宽度,其余照片视图只移动交错宽度
c、更新照片视图的位置、缩放比例、透明度
d、新的照片视图依然按步骤“2、”方式取出,展示
e、滑出屏幕的照片视图,移出使用池,添加到复用池
4、重写scrollView将要停到的位置代理方法,实现"图片视图"按张停留
5、scrollView停止减速,block回调方式通知简介视图(XZBiographyView),更新信息。