5_4-手机开播场景-文档管理

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

Last updated