TileViewController.m 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #import "TileViewController.h"
  2. #import "SkimViewController.h"
  3. #import "UIImageView+WebCache.h"
  4. @interface TileViewController ()
  5. {
  6. NSArray *_imageNames;
  7. UIScrollView *_scrollView;
  8. }
  9. @end
  10. @implementation TileViewController
  11. - (instancetype)initWithImageNames:(NSArray *)imageNames
  12. {
  13. if (self = [super init]) {
  14. _imageNames = [[NSArray alloc] initWithArray:imageNames];
  15. }
  16. return self;
  17. }
  18. - (void)viewDidLoad {
  19. [super viewDidLoad];
  20. self.navigationItem.title = @"培训照片";
  21. self.view.backgroundColor = backGroundColor;
  22. [self configNavigationBar];
  23. //创建滚动视图
  24. [self createScrollView];
  25. //创建图片视图
  26. [self createImageViews];
  27. }
  28. - (void)didReceiveMemoryWarning {
  29. [super didReceiveMemoryWarning];
  30. // Dispose of any resources that can be recreated.
  31. }
  32. - (void)createScrollView
  33. {
  34. //取消对滚动视图内容的布局的影响
  35. if (@available(iOS 11.0, *)) {
  36. _scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
  37. }else {
  38. self.automaticallyAdjustsScrollViewInsets = NO;
  39. }
  40. CGSize size = self.view.frame.size;
  41. _scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, size.width, size.height-kNavOffSet-kSafeAreaBottomHeight)];
  42. [self.view addSubview:_scrollView];
  43. }
  44. - (void)createImageViews
  45. {
  46. CGSize size = _scrollView.frame.size;
  47. CGFloat gap = 10;
  48. CGFloat width = size.width/2-gap;
  49. CGFloat height = width*3/4;//width*3/2
  50. for (NSInteger i=0; i<_imageNames.count; i++) {
  51. UIImageView *imageView = [[UIImageView alloc] init];
  52. [imageView sd_setImageWithURL:[NSURL URLWithString:_imageNames[i][@"url"]] placeholderImage:[UIImage imageNamed:@"NOImg"]];
  53. imageView.frame = CGRectMake(gap/2+i%2*(width+gap), gap+i/2*(height+gap), width, height);
  54. [_scrollView addSubview:imageView];
  55. _scrollView.contentSize = CGSizeMake(0, gap+(_imageNames.count+1)/2*(gap+height));
  56. //添加手势
  57. UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapHandle:)];
  58. [imageView addGestureRecognizer:tap];
  59. //使用tag值记录图片数组中的下标
  60. imageView.tag = i;
  61. //打开交互
  62. imageView.userInteractionEnabled = YES;
  63. }
  64. }
  65. - (BOOL)prefersStatusBarHidden
  66. {
  67. return self.navigationController.navigationBarHidden;
  68. }
  69. - (void)tapHandle:(UITapGestureRecognizer *)tap
  70. {
  71. SkimViewController *svc = [[SkimViewController alloc] initWithImageNames:_imageNames index:tap.view.tag];
  72. if ([self.parentViewController isKindOfClass:[UINavigationController class]]) {
  73. [self navPushHideTabbarToVC:svc];
  74. }else{
  75. [self.parentViewController navPushHideTabbarToVC:svc];
  76. }
  77. //告诉应用程序状态栏需要刷新(9.0以后不用管)
  78. [self setNeedsStatusBarAppearanceUpdate];
  79. }
  80. @end