VideoListViewController.m 5.6 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11
//
//  VideoListViewController.m
//  Lighting
//
//  Created by 曹云霄 on 2016/11/25.
//  Copyright © 2016年 上海勾芒科技有限公司. All rights reserved.
//

#import "VideoListViewController.h"
#import "VideoListItemTableViewCell.h"
#import "VideoListSectionHeaderView.h"
12
#import "PPTListItemTableViewCell.h"
13 14 15

@interface VideoListViewController ()<UITableViewDelegate,UITableViewDataSource>

16 17 18

@property (weak, nonatomic) IBOutlet UIView *headerView;

19 20 21 22 23 24 25 26 27 28
@end

@implementation VideoListViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    [self setUpTableView];
}

29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
#pragma mark - 刷新选中项
- (void)selectedIndexPath:(NSIndexPath *)indexPath withIsQualified:(BOOL)boolValue
{
    //考核状态
    RsStudyTask *studyEntity = self.datasArray[indexPath.section];
    CustomStudyEntity *studyList = studyEntity.studyTasks[indexPath.row];
    studyList.examResult = [NSString stringWithFormat:@"%d",boolValue];
    [self.studyListTableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
    
    //播放状态
    UITableViewCell *cell = [self.studyListTableView cellForRowAtIndexPath:indexPath];
    if ([cell isKindOfClass:[PPTListItemTableViewCell class]]) {
        PPTListItemTableViewCell *pptCell = (PPTListItemTableViewCell *)cell;
        pptCell.pptButton.selected = YES;
    }else if ([cell isKindOfClass:[VideoListItemTableViewCell class]]) {
        VideoListItemTableViewCell *videoCell = (VideoListItemTableViewCell *)cell;
        videoCell.playButton.selected = YES;
    }
}


50
#pragma mark - 数据源
51
- (void)setDatasArray:(NSMutableArray *)datasArray
52 53 54 55 56
{
    _datasArray = datasArray;
    [self.studyListTableView reloadData];
}

57 58 59 60 61 62
#pragma mark - UITableView
- (void)setUpTableView
{
    self.studyListTableView.tableFooterView = [UIView new];
    self.studyListTableView.rowHeight = 50;
    self.studyListTableView.sectionHeaderHeight = 60;
63
    self.studyItemTitleLabel.text = self.studyItemTitle;
64 65 66 67 68
}

#pragma mark - <UITableViewDelegate,UITableViewDataSource>
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
69 70 71 72 73 74 75 76 77 78 79 80
    RsStudyTask *studyEntity = self.datasArray[indexPath.section];
    CustomStudyEntity *studyList = studyEntity.studyTasks[indexPath.row];
    if ([studyList.attachment.fileUrl rangeOfString:@".ppt"].location != NSNotFound) {
        PPTListItemTableViewCell *pptItemCell = [tableView dequeueReusableCellWithIdentifier:@"PPTListItemTableViewCell" forIndexPath:indexPath];
        pptItemCell.model = studyList;
        return pptItemCell;
    }else if ([studyList.attachment.fileUrl rangeOfString:@".mp4"].location != NSNotFound){
        VideoListItemTableViewCell *videoItemCell = [tableView dequeueReusableCellWithIdentifier:@"VideoListItemTableViewCell" forIndexPath:indexPath];
        videoItemCell.model = studyList;
        return videoItemCell;
    }
    return [UITableViewCell new];
81 82 83 84
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
85 86 87 88 89 90 91
    RsStudyTask *studyTask = self.datasArray[section];
    return studyTask.studyTasks.count;
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return self.datasArray.count;
92 93 94 95 96
}

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    VideoListSectionHeaderView *headerView = [tableView dequeueReusableCellWithIdentifier:@"VideoListSectionHeaderView"];
97
    headerView.studyItemSectionLabel.text = [self.datasArray[section] categoryName];
98 99 100
    return headerView;
}

101
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
102
{
103 104 105 106 107 108 109 110 111 112 113 114 115 116
    //如果已经选中再次点击无效
    UITableViewCell *playCell = [tableView cellForRowAtIndexPath:indexPath];
    if ([playCell isKindOfClass:[PPTListItemTableViewCell class]]) {
        PPTListItemTableViewCell *pptCell = (PPTListItemTableViewCell *)playCell;
        if (pptCell.pptButton.selected) {
            return;
        }
    }else if ([playCell isKindOfClass:[VideoListItemTableViewCell class]]) {
        VideoListItemTableViewCell *videoCell = (VideoListItemTableViewCell *)playCell;
        if (videoCell.playButton.selected) {
            return;
        }
    }
    //取消所有选中状态
117 118 119 120 121 122 123 124 125 126 127 128 129
    for (UITableViewCell *cell in self.studyListTableView.visibleCells) {
        if ([cell isKindOfClass:[PPTListItemTableViewCell class]]) {
            PPTListItemTableViewCell *pptCell = (PPTListItemTableViewCell *)cell;
            pptCell.pptButton.selected = NO;
        }
        if ([cell isKindOfClass:[VideoListItemTableViewCell class]]) {
            VideoListItemTableViewCell *videoCell = (VideoListItemTableViewCell *)cell;
            videoCell.playButton.selected = NO;
        }
    }
    if ([self.delegate respondsToSelector:@selector(seleStudyItemCellIndex:)]) {
        [self.delegate seleStudyItemCellIndex:indexPath];
    }
130 131
}

132 133 134 135 136 137 138 139
#pragma mark - 视频播放百分比
- (void)videoPlayProportion:(NSInteger)proportion withIndexPath:(NSIndexPath *)indexPath
{
    VideoListItemTableViewCell *videoPlayCell = [self.studyListTableView cellForRowAtIndexPath:indexPath];
    RsStudyTask *studyEntity = self.datasArray[indexPath.section];
    CustomStudyEntity *studyList = studyEntity.studyTasks[indexPath.row];
    studyList.attachment.playPercent = [NSString stringWithFormat:@"%ld",proportion];
    [videoPlayCell.studyProgressView updateChartByCurrent:@(proportion)];
140
    NSLog(@"%ld",proportion);
141 142
}

143 144 145 146 147 148 149 150 151
#pragma mark -缩小动画
- (void)narrowAnimation
{
    [UIView animateWithDuration:0.3 animations:^{
        self.view.frame = CGRectMake(ScreenWidth*2/3 + 5, NavigationHeight,ScreenWidth/3-5, ScreenHeight-64);
    }];
}


152

153
@end