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
