YBIBImageScrollView.m 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. //
  2. // YBIBImageScrollView.m
  3. // YBImageBrowserDemo
  4. //
  5. // Created by 波儿菜 on 2019/6/10.
  6. // Copyright © 2019 波儿菜. All rights reserved.
  7. //
  8. #import "YBIBImageScrollView.h"
  9. @interface YBIBImageScrollView ()
  10. @property (nonatomic, strong) YYAnimatedImageView *imageView;
  11. @end
  12. @implementation YBIBImageScrollView
  13. #pragma mark - life cycle
  14. - (instancetype)initWithFrame:(CGRect)frame {
  15. self = [super initWithFrame:frame];
  16. if (self) {
  17. self.showsHorizontalScrollIndicator = NO;
  18. self.showsVerticalScrollIndicator = NO;
  19. self.decelerationRate = UIScrollViewDecelerationRateFast;
  20. self.maximumZoomScale = 1;
  21. self.minimumZoomScale = 1;
  22. self.alwaysBounceHorizontal = NO;
  23. self.alwaysBounceVertical = NO;
  24. self.layer.masksToBounds = NO;
  25. if (@available(iOS 11.0, *)) {
  26. self.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
  27. }
  28. [self addSubview:self.imageView];
  29. }
  30. return self;
  31. }
  32. #pragma mark - public
  33. - (void)setImage:(__kindof UIImage *)image type:(YBIBScrollImageType)type {
  34. self.imageView.image = image;
  35. self.imageType = type;
  36. }
  37. - (void)reset {
  38. self.zoomScale = 1;
  39. self.imageView.image = nil;
  40. self.imageView.frame = CGRectZero;
  41. self.imageType = YBIBScrollImageTypeNone;
  42. }
  43. #pragma mark - getters
  44. - (YYAnimatedImageView *)imageView {
  45. if (!_imageView) {
  46. _imageView = [YYAnimatedImageView new];
  47. _imageView.contentMode = UIViewContentModeScaleAspectFill;
  48. _imageView.layer.masksToBounds = YES;
  49. }
  50. return _imageView;
  51. }
  52. @end