QMFileManagerController.m 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. //
  2. // QMFileManagerController.m
  3. // IMSDK-OC
  4. //
  5. // Created by HCF on 16/8/10.
  6. // Copyright © 2016年 HCF. All rights reserved.
  7. //
  8. #import "QMFileManagerController.h"
  9. #import "QMItemCollectionCell.h"
  10. #import "QMPickedPhotoViewController.h"
  11. #import "QMPickedVideoViewController.h"
  12. #import "QMPickedDocViewController.h"
  13. #import "QMPickedAudioViewController.h"
  14. #import "QMPickedOtherViewController.h"
  15. /**
  16. */
  17. @interface QMFileManagerController ()<UICollectionViewDelegate, UICollectionViewDataSource> {
  18. UICollectionView *_collectionView;
  19. NSArray *_items;
  20. }
  21. @end
  22. @implementation QMFileManagerController
  23. - (void)viewDidLoad {
  24. [super viewDidLoad];
  25. self.view.backgroundColor = [UIColor whiteColor];
  26. _items = @[NSLocalizedString(@"button.chat_file", nil), NSLocalizedString(@"button.chat_img", nil), NSLocalizedString(@"button.chat_music", nil), NSLocalizedString(@"button.chat_video", nil), NSLocalizedString(@"button.chat_other", nil)];
  27. [self createUI];
  28. }
  29. - (void)dealloc {
  30. }
  31. - (void)createUI {
  32. UICollectionViewFlowLayout * layout = [[UICollectionViewFlowLayout alloc] init];
  33. layout.itemSize = CGSizeMake((kScreenWidth-6)/3, (kScreenWidth-6)/3);
  34. layout.scrollDirection = UICollectionViewScrollDirectionVertical;
  35. layout.sectionInset = UIEdgeInsetsMake(0, 1, 0, 1);
  36. layout.minimumLineSpacing = 2.0;
  37. layout.minimumInteritemSpacing = 1.0;
  38. layout.headerReferenceSize = CGSizeMake(0, 0);
  39. _collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight-64) collectionViewLayout:layout];
  40. _collectionView.backgroundColor = [UIColor whiteColor];
  41. _collectionView.delegate = self;
  42. _collectionView.dataSource = self;
  43. [self.view addSubview:_collectionView];
  44. [_collectionView registerClass:[QMItemCollectionCell self] forCellWithReuseIdentifier:NSStringFromClass(QMItemCollectionCell.self)];
  45. }
  46. - (void)collectionView:(UICollectionView *)collectionView willDisplayCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath {
  47. NSString * name = _items[indexPath.item];
  48. if ([cell isKindOfClass:[QMItemCollectionCell class]]) {
  49. QMItemCollectionCell * displayCell = (QMItemCollectionCell *)cell;
  50. [displayCell configureWithName:name];
  51. }
  52. }
  53. - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
  54. return _items.count;
  55. }
  56. - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
  57. QMItemCollectionCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass(QMItemCollectionCell.self) forIndexPath:indexPath];
  58. return cell;
  59. }
  60. - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
  61. switch (indexPath.item) {
  62. case 0: {
  63. QMPickedDocViewController *viewController = [[QMPickedDocViewController alloc] init];
  64. [self.navigationController pushViewController:viewController animated:YES];
  65. }
  66. break;
  67. case 1: {
  68. QMPickedPhotoViewController *viewController = [[QMPickedPhotoViewController alloc] init];
  69. [self.navigationController pushViewController:viewController animated:YES];
  70. break;
  71. }
  72. case 2: {
  73. QMPickedAudioViewController *viewController = [[QMPickedAudioViewController alloc] init];
  74. [self.navigationController pushViewController:viewController animated:YES];
  75. break;
  76. }
  77. case 3: {
  78. QMPickedVideoViewController *viewController = [[QMPickedVideoViewController alloc] init];
  79. [self.navigationController pushViewController:viewController animated:YES];
  80. break;
  81. }
  82. case 4: {
  83. QMPickedOtherViewController *viewController = [[QMPickedOtherViewController alloc] init];
  84. [self.navigationController pushViewController:viewController animated:YES];
  85. break;
  86. }
  87. default:
  88. break;
  89. }
  90. }
  91. - (void)didReceiveMemoryWarning {
  92. [super didReceiveMemoryWarning];
  93. }
  94. @end