LZImageBrowserViewController.m 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. //
  2. // LZImageBrowserViewController.m
  3. // LZImageDetail
  4. //
  5. // Created by shenzhenshihua on 2018/7/16.
  6. // Copyright © 2018年 shenzhenshihua. All rights reserved.
  7. //
  8. #import "LZImageBrowserViewController.h"
  9. #import "LZImageBrowserMainView.h"
  10. #import "LZImageBrowserTranslation.h"
  11. #import "LZImageBrowserHeader.h"
  12. @interface LZImageBrowserViewController ()<UIViewControllerTransitioningDelegate, LZImageBrowserMainViewDelegate>
  13. @property(nonatomic,copy)NSArray * imageUrls;
  14. @property(nonatomic,copy)NSArray * originImageViews;
  15. @property(nonatomic,assign)NSInteger selectPage; ///< 选中哪一个imageView
  16. @property(nonatomic,strong)LZImageBrowserMainView * browserMainView;
  17. @property(nonatomic,strong)LZImageBrowserTranslation *browserTranslation;
  18. @property(nonatomic,strong)UIViewController * controller;
  19. @end
  20. @implementation LZImageBrowserViewController
  21. - (id)initWithUrlStr:(NSArray<NSString *>*)imageUrls originImageViews:(NSArray<UIImageView *>*)originImageViews selectPage:(NSInteger)selectPage {
  22. if (self = [super init]) {
  23. self.modalPresentationStyle = UIModalPresentationOverCurrentContext;
  24. self.transitioningDelegate = self;
  25. self.imageUrls = imageUrls;
  26. self.originImageViews = originImageViews;
  27. self.selectPage = selectPage;
  28. }
  29. return self;
  30. }
  31. - (void)viewDidLoad {
  32. [super viewDidLoad];
  33. [self initView];
  34. // Do any additional setup after loading the view.
  35. }
  36. - (void)initView {
  37. self.view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:1.0];
  38. [self.view addSubview:self.browserMainView];
  39. }
  40. #pragma mark --LZImageBrowserMainViewDelegate
  41. /* 单击 后的操作 */
  42. - (void)imageBrowserMianViewSingleTapWithModel:(LZImageBrowserModel *)imageBrowserModel {
  43. [self dismissViewControllerAnimated:YES completion:nil];
  44. }
  45. /* 改变主视图 的 透明度 */
  46. - (void)imageBrowserMainViewTouchMoveChangeMainViewAlpha:(CGFloat)alpha {
  47. self.view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:alpha];
  48. }
  49. #pragma mark --UIViewControllerTransitioningDelegate
  50. - (id<UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source {
  51. self.browserTranslation.isBrowserMainView = YES;
  52. return self.browserTranslation;
  53. }
  54. - (id<UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController:(UIViewController *)dismissed {
  55. self.browserTranslation.isBrowserMainView = NO;
  56. return self.browserTranslation;
  57. }
  58. #pragma mark -lazy
  59. - (LZImageBrowserMainView *)browserMainView {
  60. if (_browserMainView == nil) {
  61. _browserMainView = [LZImageBrowserMainView imageBrowserMainViewUrlStr:self.imageUrls originImageViews:self.originImageViews selectPage:self.selectPage];
  62. _browserMainView.delegate = self;
  63. }
  64. return _browserMainView;
  65. }
  66. - (LZImageBrowserTranslation *)browserTranslation {
  67. if (_browserTranslation == nil) {
  68. _browserTranslation = [[LZImageBrowserTranslation alloc] init];
  69. _browserTranslation.mainBrowserMainView = self.browserMainView;
  70. _browserTranslation.browserControllerView = self.view;
  71. }
  72. return _browserTranslation;
  73. }
  74. - (void)didReceiveMemoryWarning {
  75. [super didReceiveMemoryWarning];
  76. // Dispose of any resources that can be recreated.
  77. }
  78. /*
  79. #pragma mark - Navigation
  80. // In a storyboard-based application, you will often want to do a little preparation before navigation
  81. - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
  82. // Get the new view controller using [segue destinationViewController].
  83. // Pass the selected object to the new view controller.
  84. }
  85. */
  86. @end