| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- //
- // YBUserListView.m
- // YBVideo
- //
- // Created by YB007 on 2019/11/30.
- // Copyright © 2019 cat. All rights reserved.
- //
- #import "YBUserListView.h"
- #import "YBUserListModel.h"
- #import "YBUserListCell.h"
- @interface YBUserListView()<UICollectionViewDelegate,UICollectionViewDataSource>
- {
- int _userCount; //预留
- }
- @property(nonatomic,strong)UICollectionView *collectionView;
- @property(nonatomic,strong)NSMutableArray *listArray;
- @property(nonatomic,strong)NSMutableArray *listModel;
- @end
- @implementation YBUserListView
- - (instancetype)initWithFrame:(CGRect)frame {
- self = [super initWithFrame:frame];
- if (self) {
- _listArray = [NSMutableArray array];
- _listModel = [NSMutableArray array];
- [self addSubview:self.collectionView];
- }
- return self;
- }
- - (void)layoutSubviews {
- [super layoutSubviews];
- [_collectionView mas_remakeConstraints:^(MASConstraintMaker *make) {
- make.width.height.centerX.centerY.equalTo(self);
- }];
- }
- - (NSMutableArray *)listModel {
- NSMutableArray *array = [NSMutableArray array];
- for (NSDictionary *dic in _listArray) {
- YBUserListModel *model = [YBUserListModel modelWithDic:dic];
- [array addObject:model];
- }
- _listModel = [array mutableCopy];
- return _listModel;
- }
- #pragma mark - 用户第一次进房间、请求僵尸粉数组赋值
- -(void)updateListCount:(NSArray *)listArray {
- if(_listArray.count > 0){
- [_listArray removeAllObjects];
- }
- [_listArray addObjectsFromArray:listArray];
- _userCount = (int)_listArray.count;
- }
- #pragma mark - 用户进入、离开
- -(void)userEventOfType:(UserEventType)eventType andInfo:(NSDictionary *)eventDic {
- if (eventType == UserEvent_Enter) {
- //进入
- _userCount +=1;
-
- NSString *ID = [[eventDic valueForKey:@"ct"] valueForKey:@"id"];
- [_listArray enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
- for (NSDictionary *dic in _listArray) {
- int a = [[dic valueForKey:@"id"] intValue];
- int bsss = [ID intValue];
- if ([[dic valueForKey:@"id"] isEqual:ID] || a == bsss) {
- [_listArray removeObject:dic];
- break;
- }
- }
- }];
- NSDictionary *subdic = [eventDic valueForKey:@"ct"];
- [self.listArray addObject:subdic];
- [_collectionView reloadData];
- }else {
- //离开
- _userCount -=1;
- if (_userCount <=0) {
- _userCount = 0;
- }
-
- NSDictionary *SUBdIC =[eventDic valueForKey:@"ct"];
- NSString *ID = [SUBdIC valueForKey:@"id"];
- [_listArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
- for (NSDictionary *dic in _listArray) {
- if ([[dic valueForKey:@"id"] isEqual:ID]) {
- [_listArray removeObject:dic];
- [_collectionView reloadData];
- return ;
- }
- }
- }];
- }
- }
- #pragma mark - /** 计时器刷新 */
- -(void)timerReloadList {
- if ([PublicObj checkNull:_liveUid] || [PublicObj checkNull:_liveStream]) {
- [MBProgressHUD showPop:YZMsg(@"缺少信息")];
- return;
- }
- NSDictionary *postDic = @{
- @"liveuid":_liveUid,
- @"stream":_liveStream,
- };
-
- [YBNetworking postWithUrl:@"Live.getUserLists" Dic:postDic Suc:^(int code, id info, NSString *msg) {
- if (code == 0) {
- NSArray *infos = [info firstObject];
- NSArray *list = [infos valueForKey:@"userlist"];
- if ([list isEqual:[NSNull null]]) {
- return ;
- }
- [_listArray removeAllObjects];
- [_listArray addObjectsFromArray:list];
- [_collectionView reloadData];
- }
- } Fail:^(id fail) {
-
- }];
-
- }
- -(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
- return self.listModel.count;
- }
- -(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{
- return 1;
- }
- - (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section{
- return 0;
- }
- - (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section{
- return 0;
- }
- -(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
- YBUserListCell *cell = (YBUserListCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"YBUserListCell" forIndexPath:indexPath];
- YBUserListModel *model = _listModel[indexPath.row];
- cell.model = model;
- cell.backgroundColor = [UIColor clearColor];
- if (indexPath.row < 3 && [model.contribution intValue]>0) {
- cell.kuang.image = [UIImage imageNamed:[NSString stringWithFormat:@"userlist_no%ld",indexPath.row+1]];
- }else{
- cell.kuang.image = [UIImage new];
- }
- return cell;
- }
- -(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
- YBUserListModel *model = _listModel[indexPath.row];
- NSString *ID = model.userID;
- NSDictionary *subdic = [NSDictionary dictionaryWithObjects:@[ID,model.user_nickname] forKeys:@[@"id",@"name"]];
- if (self.listEvent) {
- self.listEvent(@"用户列表-用户信息", subdic);
- }
- }
- -(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
- return CGSizeMake(40,40);
- }
- -(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
- return UIEdgeInsetsMake(0,5,0,5);
- }
- - (UICollectionView *)collectionView {
- if (!_collectionView) {
- UICollectionViewFlowLayout *flowlayoutt = [[UICollectionViewFlowLayout alloc]init];
- flowlayoutt.itemSize = CGSizeMake(40,40);
- flowlayoutt.scrollDirection = UICollectionViewScrollDirectionHorizontal;
- _collectionView = [[UICollectionView alloc]initWithFrame:CGRectMake(0,0,self.width,self.height) collectionViewLayout:flowlayoutt];
- _collectionView.showsHorizontalScrollIndicator = NO;
- _collectionView.delegate = self;
- _collectionView.dataSource = self;
- [_collectionView registerClass:[YBUserListCell class] forCellWithReuseIdentifier:@"YBUserListCell"];
- _collectionView.backgroundColor = [UIColor clearColor];
- }
- return _collectionView;
- }
- @end
|