BTUIKPaymentOptionCardView.m 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #import "BTUIKPaymentOptionCardView.h"
  2. #import "BTUIKVectorArtView.h"
  3. #import "BTUIKAppearance.h"
  4. @interface BTUIKPaymentOptionCardView()
  5. @property (nonatomic, strong) BTUIKVectorArtView *imageView;
  6. @end
  7. @implementation BTUIKPaymentOptionCardView
  8. - (instancetype)init {
  9. self = [super init];
  10. if (self) {
  11. self.vectorArtSize = BTUIKVectorArtSizeRegular;
  12. self.cornerRadius = 4.0;
  13. self.innerPadding = 0.0;
  14. self.borderWidth = 0.5;
  15. self.borderColor = [BTUIKAppearance sharedInstance].lineColor;
  16. self.clipsToBounds = YES;
  17. self.backgroundColor = [UIColor whiteColor];
  18. }
  19. return self;
  20. }
  21. - (void)setImageView:(BTUIKVectorArtView *)imageView {
  22. if (_imageView) {
  23. [_imageView removeFromSuperview];
  24. }
  25. _imageView = imageView;
  26. _imageView.translatesAutoresizingMaskIntoConstraints = NO;
  27. [self addSubview:_imageView];
  28. [self updateAppearance];
  29. }
  30. - (void)updateAppearance {
  31. NSDictionary *viewBindings = @{@"imageView": self.imageView};
  32. NSDictionary *metrics = @{@"PADDING": @(self.innerPadding)};
  33. [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(PADDING)-[imageView]-(PADDING)-|"
  34. options:0
  35. metrics:metrics
  36. views:viewBindings]];
  37. [self addConstraint:[NSLayoutConstraint constraintWithItem:self.imageView
  38. attribute:NSLayoutAttributeCenterY
  39. relatedBy:NSLayoutRelationEqual
  40. toItem:self
  41. attribute:NSLayoutAttributeCenterY
  42. multiplier:1.0
  43. constant:0]];
  44. [self addConstraint:[NSLayoutConstraint constraintWithItem:self.imageView
  45. attribute:NSLayoutAttributeHeight
  46. relatedBy:NSLayoutRelationEqual
  47. toItem:self.imageView
  48. attribute:NSLayoutAttributeWidth
  49. multiplier:self.imageView.artDimensions.height/self.imageView.artDimensions.width
  50. constant:0]];
  51. }
  52. - (void)setPaymentOptionType:(BTUIKPaymentOptionType)paymentOptionType {
  53. _paymentOptionType = paymentOptionType;
  54. self.borderWidth = self.paymentOptionType == BTUIKPaymentOptionTypeApplePay ? 0.0 : self.borderWidth;
  55. self.imageView = [BTUIKViewUtil vectorArtViewForPaymentOptionType:self.paymentOptionType size:self.vectorArtSize];
  56. }
  57. - (void)setHighlighted:(BOOL)highlighted {
  58. if (highlighted) {
  59. self.layer.borderColor = self.tintColor.CGColor;
  60. } else {
  61. self.layer.borderColor = self.borderColor.CGColor;
  62. }
  63. }
  64. - (CGSize)getArtDimensions {
  65. return self.imageView.artDimensions;
  66. }
  67. - (void)setCornerRadius:(float)cornerRadius {
  68. _cornerRadius = cornerRadius;
  69. self.layer.cornerRadius = self.cornerRadius;
  70. }
  71. - (void)setBorderWidth:(float)borderWidth {
  72. _borderWidth = borderWidth;
  73. self.layer.borderWidth = _borderWidth;
  74. }
  75. - (void)setBorderColor:(UIColor *)borderColor {
  76. _borderColor = borderColor;
  77. self.layer.borderColor = _borderColor.CGColor;
  78. }
  79. - (void)setInnerPadding:(float)innerPadding {
  80. _innerPadding = innerPadding;
  81. if (self.imageView != nil) {
  82. [self updateAppearance];
  83. }
  84. }
  85. @end