1 功能概述
文档管理模块包括选择文档、查看选中文档详情、上传文档、删除文档等功能。文档管理页面是一个弹层,整个界面被封装在 PLVLSDocumentSheet
中。
2 使用演示
PLVLSDocumentSheet
是一个弹层页面,继承于基类 PLVLSBottomSheet
,使用文档管理弹层只需创建弹层对象,并调用 -showInView:
方法即可显示弹层。
self.docSheet = [[PLVLSDocumentSheet alloc] init];
self.docSheet.delegate = self;
[self.docSheet showInView:self.superview];
弹出文档管理弹层的页面需遵循协议 PLVLSDocumentSheetDelegate
,并实现以下代理方法,ppt&白板页面需在代理方法中,切换到新的文档或文档页面,或切换到白板:
@protocol PLVLSDocumentSheetDelegate <NSObject>
/// 选择文档、文档页回调
/// @param documentSheet 文档弹层对象
/// @param autoId 选择的文档autoId
/// @param pageIndex 选择的文档页序号(页码)
- (void)documentSheet:(PLVLSDocumentSheet *)documentSheet didSelectAutoId:(NSInteger)autoId pageIndex:(NSInteger)pageIndex;
@end
3 实现介绍
文档管理弹层 PLVLSDocumentSheet
由以下控件组成:
@property (nonatomic, strong) UIScrollView *scrollView ; // 文档父层View
@property (nonatomic, strong) PLVLSDocumentListView *docListView; // 文档列表视图
@property (nonatomic, strong) PLVLSDocumentPagesView *docPagesView; // 文档页面列表视图
scrollView
是一个横向翻页的滚动视图,第一页是文档列表视图 docListView
,选中具体某个文档之后,滚动视图会滚动到第二页,展示选中文档的页面详情列表视图 docPagesView
。
3.1 PLVLSDocumentListView
文档列表视图类 PLVLSDocumentListView
在内部已封装了文档管理的业务逻辑,外部使用只需要初始化一个 PLVLSDocumentListView
的实例对象,并遵循协议 PLVLSDocumentListViewDelegate
,实现相关回调即可。
self.docListView = [[PLVLSDocumentListView alloc] init];
self.docListView.delegate = self;
[self.scrollView addSubview:self.docListView];
self.docListView.frame = self.scrollView.bounds;
协议 PLVLSDocumentListViewDelegate
的回调方法定义如下:
@protocol PLVLSDocumentListViewDelegate <NSObject>
/// 点击上传文档按钮回调
///
/// @param documentListView 文档列表对象
- (void)documentListViewUploadDocument:(PLVLSDocumentListView *)documentListView;
/// 文档上传须知按钮响应回调
///
/// @param documentListView 文档列表对象
- (void)documentListViewShowTip:(PLVLSDocumentListView *)documentListView;
/// 选择文档回调
///
/// @param documentListView 文档列表对象
/// @param model 选择的文档数据对象
/// @param isChangeDocument YES 切换文档,NO 没有切换只是单纯的二次点击
- (void)documentListView:(PLVLSDocumentListView *)documentListView didSelectItemModel:(PLVLSDocumentModel *)model changeDocument:(BOOL)isChangeDocument;
@end
3.2 PLVLSDocumentPagesView
文档页面列表视图由于只有在选中了某个文档进行展示时,才会出现,所以采用的是需要时初始化,取消文档选中就回收的方式:
// 选中某个文档时
if (!self.docPagesView) {
self.docPagesView = [[PLVLSDocumentPagesView alloc] init];
self.docPagesView.delegate = self;
}
// 返回文档列表时
[self.docPagesView removeFromSuperview];
self.docPagesView = nil;
docPagesView
所需要的数据,由文档管理弹层 docSheet
所持有,只有在需要展示文档页面详情时,才赋值给 docPagesView
。
self.docPagesView.title = self.pagesTitle; // 文档标题
[self.docPagesView setPagesViewDatas:self.imageUrls]; // 设置文档页面缩略图
[self.docPagesView setSelectPageIndex:self.selectPageId]; // 选中文档页面
同时,遵循协议 PLVLSDocumentPagesViewDelegate
,实现以下方法:
@protocol PLVLSDocumentPagesViewDelegate <NSObject>
/// 点击返回按钮响应回调
///
/// @param documentPagesView 文档列表页面对象
- (void)documentPagesViewDidBackAction:(PLVLSDocumentPagesView *)documentPagesView;
/// 选中文档页面回调
///
/// @param documentPagesView 文档列表页面对象
/// @param index 选择的文档页面序号
- (void)documentPagesView:(PLVLSDocumentPagesView *)documentPagesView didSelectItemAtIndex:(NSInteger)index;
@end