EaseBubbleView+Gif.m 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /************************************************************
  2. * * Hyphenate CONFIDENTIAL
  3. * __________________
  4. * Copyright (C) 2016 Hyphenate Inc. All rights reserved.
  5. *
  6. * NOTICE: All information contained herein is, and remains
  7. * the property of Hyphenate Inc.
  8. * Dissemination of this information or reproduction of this material
  9. * is strictly forbidden unless prior written permission is obtained
  10. * from Hyphenate Inc.
  11. */
  12. #import "EaseBubbleView+Gif.h"
  13. @implementation EaseBubbleView (Gif)
  14. #pragma mark - private
  15. - (void)_setupGifBubbleMarginConstraints
  16. {
  17. NSLayoutConstraint *marginTopConstraint = [NSLayoutConstraint constraintWithItem:self.imageView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeTop multiplier:1.0 constant:self.margin.top];
  18. NSLayoutConstraint *marginBottomConstraint = [NSLayoutConstraint constraintWithItem:self.imageView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeBottom multiplier:1.0 constant:-self.margin.bottom];
  19. NSLayoutConstraint *marginLeftConstraint = [NSLayoutConstraint constraintWithItem:self.imageView attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeRight multiplier:1.0 constant:-self.margin.right];
  20. NSLayoutConstraint *marginRightConstraint = [NSLayoutConstraint constraintWithItem:self.imageView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeLeft multiplier:1.0 constant:self.margin.left];
  21. [self.marginConstraints removeAllObjects];
  22. [self.marginConstraints addObject:marginTopConstraint];
  23. [self.marginConstraints addObject:marginBottomConstraint];
  24. [self.marginConstraints addObject:marginLeftConstraint];
  25. [self.marginConstraints addObject:marginRightConstraint];
  26. [self addConstraints:self.marginConstraints];
  27. }
  28. - (void)_setupGifBubbleConstraints
  29. {
  30. [self _setupGifBubbleMarginConstraints];
  31. }
  32. #pragma mark - public
  33. - (void)setupGifBubbleView
  34. {
  35. self.imageView = [[UIImageView alloc] init];
  36. self.imageView.translatesAutoresizingMaskIntoConstraints = NO;
  37. self.imageView.backgroundColor = [UIColor clearColor];
  38. [self addSubview:self.imageView];
  39. self.backgroundImageView.hidden = YES;
  40. [self _setupGifBubbleConstraints];
  41. [self addConstraint:[NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationLessThanOrEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:100]];
  42. }
  43. - (void)updateGifMargin:(UIEdgeInsets)margin
  44. {
  45. if (_margin.top == margin.top && _margin.bottom == margin.bottom && _margin.left == margin.left && _margin.right == margin.right) {
  46. return;
  47. }
  48. _margin = margin;
  49. [self removeConstraints:self.marginConstraints];
  50. [self _setupGifBubbleMarginConstraints];
  51. }
  52. @end