BTUIKVenmoWordmarkVectorArtView.m 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. #import "BTUIKVenmoWordmarkVectorArtView.h"
  2. @implementation BTUIKVenmoWordmarkVectorArtView
  3. - (id)init {
  4. self = [super init];
  5. if (self) {
  6. self.artDimensions = CGSizeMake(132, 88);
  7. self.opaque = NO;
  8. }
  9. return self;
  10. }
  11. - (void)setColor:(UIColor *)color {
  12. _color = color;
  13. [self setNeedsDisplay];
  14. }
  15. - (void)drawArt {
  16. //// Color Declarations
  17. UIColor* color = self.color; //[UIColor colorWithRed: 0.194 green: 0.507 blue: 0.764 alpha: 1];
  18. //// Assets
  19. {
  20. //// button-venmo
  21. {
  22. //// Rectangle Drawing
  23. //// logo/venmo
  24. {
  25. //// Bezier Drawing
  26. UIBezierPath* bezierPath = [UIBezierPath bezierPath];
  27. [bezierPath moveToPoint: CGPointMake(70.02, 53.98)];
  28. [bezierPath addCurveToPoint: CGPointMake(70.02, 52.78) controlPoint1: CGPointMake(70.02, 53.43) controlPoint2: CGPointMake(69.97, 53.09)];
  29. [bezierPath addCurveToPoint: CGPointMake(72.56, 36.46) controlPoint1: CGPointMake(70.87, 47.34) controlPoint2: CGPointMake(71.77, 41.9)];
  30. [bezierPath addCurveToPoint: CGPointMake(74.94, 34.44) controlPoint1: CGPointMake(72.87, 34.33) controlPoint2: CGPointMake(72.83, 34.43)];
  31. [bezierPath addCurveToPoint: CGPointMake(76.91, 34.43) controlPoint1: CGPointMake(75.59, 34.44) controlPoint2: CGPointMake(76.25, 34.48)];
  32. [bezierPath addCurveToPoint: CGPointMake(78.78, 35.72) controlPoint1: CGPointMake(77.84, 34.35) controlPoint2: CGPointMake(78.63, 34.46)];
  33. [bezierPath addCurveToPoint: CGPointMake(79.63, 35.35) controlPoint1: CGPointMake(79.13, 35.57) controlPoint2: CGPointMake(79.39, 35.49)];
  34. [bezierPath addCurveToPoint: CGPointMake(83.08, 34.11) controlPoint1: CGPointMake(80.7, 34.71) controlPoint2: CGPointMake(81.84, 34.3)];
  35. [bezierPath addCurveToPoint: CGPointMake(87.94, 35.56) controlPoint1: CGPointMake(84.94, 33.83) controlPoint2: CGPointMake(86.59, 34.13)];
  36. [bezierPath addCurveToPoint: CGPointMake(88.47, 35.99) controlPoint1: CGPointMake(88.08, 35.71) controlPoint2: CGPointMake(88.26, 35.82)];
  37. [bezierPath addCurveToPoint: CGPointMake(90.53, 34.9) controlPoint1: CGPointMake(89.16, 35.62) controlPoint2: CGPointMake(89.83, 35.22)];
  38. [bezierPath addCurveToPoint: CGPointMake(96.29, 34.23) controlPoint1: CGPointMake(92.38, 34.05) controlPoint2: CGPointMake(94.29, 33.75)];
  39. [bezierPath addCurveToPoint: CGPointMake(99, 37.48) controlPoint1: CGPointMake(97.97, 34.63) controlPoint2: CGPointMake(98.97, 35.72)];
  40. [bezierPath addCurveToPoint: CGPointMake(98.7, 41.97) controlPoint1: CGPointMake(99.02, 38.98) controlPoint2: CGPointMake(98.91, 40.49)];
  41. [bezierPath addCurveToPoint: CGPointMake(97.05, 52.6) controlPoint1: CGPointMake(98.2, 45.52) controlPoint2: CGPointMake(97.6, 49.06)];
  42. [bezierPath addCurveToPoint: CGPointMake(95.52, 53.99) controlPoint1: CGPointMake(96.84, 53.93) controlPoint2: CGPointMake(96.8, 53.99)];
  43. [bezierPath addCurveToPoint: CGPointMake(91.7, 53.99) controlPoint1: CGPointMake(94.24, 54) controlPoint2: CGPointMake(92.97, 54)];
  44. [bezierPath addCurveToPoint: CGPointMake(90.47, 53.9) controlPoint1: CGPointMake(91.34, 53.99) controlPoint2: CGPointMake(90.98, 53.94)];
  45. [bezierPath addCurveToPoint: CGPointMake(90.55, 52.4) controlPoint1: CGPointMake(90.5, 53.35) controlPoint2: CGPointMake(90.48, 52.87)];
  46. [bezierPath addCurveToPoint: CGPointMake(92.22, 41.39) controlPoint1: CGPointMake(91.1, 48.73) controlPoint2: CGPointMake(91.66, 45.06)];
  47. [bezierPath addCurveToPoint: CGPointMake(92.28, 40.52) controlPoint1: CGPointMake(92.26, 41.1) controlPoint2: CGPointMake(92.32, 40.8)];
  48. [bezierPath addCurveToPoint: CGPointMake(91.24, 39.51) controlPoint1: CGPointMake(92.21, 39.89) controlPoint2: CGPointMake(91.84, 39.46)];
  49. [bezierPath addCurveToPoint: CGPointMake(89.13, 40.07) controlPoint1: CGPointMake(90.52, 39.58) controlPoint2: CGPointMake(89.78, 39.77)];
  50. [bezierPath addCurveToPoint: CGPointMake(88.65, 41.13) controlPoint1: CGPointMake(88.86, 40.2) controlPoint2: CGPointMake(88.71, 40.75)];
  51. [bezierPath addCurveToPoint: CGPointMake(87.43, 48.92) controlPoint1: CGPointMake(88.22, 43.72) controlPoint2: CGPointMake(87.83, 46.32)];
  52. [bezierPath addCurveToPoint: CGPointMake(86.63, 53.9) controlPoint1: CGPointMake(87.17, 50.56) controlPoint2: CGPointMake(86.91, 52.2)];
  53. [bezierPath addLineToPoint: CGPointMake(80.17, 53.9)];
  54. [bezierPath addCurveToPoint: CGPointMake(80.62, 50.53) controlPoint1: CGPointMake(80.33, 52.73) controlPoint2: CGPointMake(80.45, 51.62)];
  55. [bezierPath addCurveToPoint: CGPointMake(81.96, 42.12) controlPoint1: CGPointMake(81.06, 47.72) controlPoint2: CGPointMake(81.52, 44.93)];
  56. [bezierPath addCurveToPoint: CGPointMake(82.02, 40.63) controlPoint1: CGPointMake(82.03, 41.63) controlPoint2: CGPointMake(82.08, 41.12)];
  57. [bezierPath addCurveToPoint: CGPointMake(81.53, 39.69) controlPoint1: CGPointMake(81.97, 40.29) controlPoint2: CGPointMake(81.79, 39.88)];
  58. [bezierPath addCurveToPoint: CGPointMake(78.43, 40.93) controlPoint1: CGPointMake(80.64, 39.03) controlPoint2: CGPointMake(78.64, 39.84)];
  59. [bezierPath addCurveToPoint: CGPointMake(77.86, 44.51) controlPoint1: CGPointMake(78.2, 42.12) controlPoint2: CGPointMake(78.04, 43.32)];
  60. [bezierPath addCurveToPoint: CGPointMake(76.58, 53.05) controlPoint1: CGPointMake(77.43, 47.36) controlPoint2: CGPointMake(77, 50.2)];
  61. [bezierPath addCurveToPoint: CGPointMake(75.81, 53.98) controlPoint1: CGPointMake(76.51, 53.55) controlPoint2: CGPointMake(76.4, 53.97)];
  62. [bezierPath addCurveToPoint: CGPointMake(70.02, 53.98) controlPoint1: CGPointMake(73.93, 53.98) controlPoint2: CGPointMake(72.05, 53.98)];
  63. [bezierPath closePath];
  64. [bezierPath moveToPoint: CGPointMake(65.64, 53.85)];
  65. [bezierPath addCurveToPoint: CGPointMake(59.25, 53.73) controlPoint1: CGPointMake(64, 54.09) controlPoint2: CGPointMake(60.19, 54.03)];
  66. [bezierPath addCurveToPoint: CGPointMake(59.71, 50.43) controlPoint1: CGPointMake(59.4, 52.64) controlPoint2: CGPointMake(59.54, 51.53)];
  67. [bezierPath addCurveToPoint: CGPointMake(61.06, 41.78) controlPoint1: CGPointMake(60.16, 47.55) controlPoint2: CGPointMake(60.61, 44.67)];
  68. [bezierPath addCurveToPoint: CGPointMake(58.66, 39.69) controlPoint1: CGPointMake(61.39, 39.72) controlPoint2: CGPointMake(60.6, 39.04)];
  69. [bezierPath addCurveToPoint: CGPointMake(57.43, 41.2) controlPoint1: CGPointMake(57.9, 39.94) controlPoint2: CGPointMake(57.55, 40.4)];
  70. [bezierPath addCurveToPoint: CGPointMake(55.71, 52.57) controlPoint1: CGPointMake(56.88, 45) controlPoint2: CGPointMake(56.29, 48.78)];
  71. [bezierPath addCurveToPoint: CGPointMake(54.19, 53.98) controlPoint1: CGPointMake(55.51, 53.92) controlPoint2: CGPointMake(55.46, 53.97)];
  72. [bezierPath addCurveToPoint: CGPointMake(49, 53.98) controlPoint1: CGPointMake(52.51, 53.99) controlPoint2: CGPointMake(50.84, 53.98)];
  73. [bezierPath addCurveToPoint: CGPointMake(49.38, 50.94) controlPoint1: CGPointMake(49.13, 52.89) controlPoint2: CGPointMake(49.22, 51.91)];
  74. [bezierPath addCurveToPoint: CGPointMake(51.46, 37.73) controlPoint1: CGPointMake(50.06, 46.54) controlPoint2: CGPointMake(50.76, 42.14)];
  75. [bezierPath addCurveToPoint: CGPointMake(51.8, 35.38) controlPoint1: CGPointMake(51.58, 36.95) controlPoint2: CGPointMake(51.71, 36.17)];
  76. [bezierPath addCurveToPoint: CGPointMake(52.73, 34.45) controlPoint1: CGPointMake(51.86, 34.79) controlPoint2: CGPointMake(52.12, 34.45)];
  77. [bezierPath addCurveToPoint: CGPointMake(56.91, 34.44) controlPoint1: CGPointMake(54.12, 34.45) controlPoint2: CGPointMake(55.52, 34.47)];
  78. [bezierPath addCurveToPoint: CGPointMake(57.91, 35.69) controlPoint1: CGPointMake(57.69, 34.43) controlPoint2: CGPointMake(57.61, 35.12)];
  79. [bezierPath addCurveToPoint: CGPointMake(59.21, 35.06) controlPoint1: CGPointMake(58.36, 35.47) controlPoint2: CGPointMake(58.79, 35.27)];
  80. [bezierPath addCurveToPoint: CGPointMake(65.29, 34.26) controlPoint1: CGPointMake(61.15, 34.1) controlPoint2: CGPointMake(63.16, 33.69)];
  81. [bezierPath addCurveToPoint: CGPointMake(67.84, 37) controlPoint1: CGPointMake(66.7, 34.64) controlPoint2: CGPointMake(67.49, 35.55)];
  82. [bezierPath addCurveToPoint: CGPointMake(67.73, 40.97) controlPoint1: CGPointMake(68.17, 38.36) controlPoint2: CGPointMake(67.92, 39.67)];
  83. [bezierPath addCurveToPoint: CGPointMake(65.8, 53.33) controlPoint1: CGPointMake(67.14, 45.1) controlPoint2: CGPointMake(66.45, 49.21)];
  84. [bezierPath addCurveToPoint: CGPointMake(65.64, 53.85) controlPoint1: CGPointMake(65.77, 53.49) controlPoint2: CGPointMake(65.71, 53.64)];
  85. [bezierPath closePath];
  86. [bezierPath moveToPoint: CGPointMake(118.98, 42.12)];
  87. [bezierPath addCurveToPoint: CGPointMake(117.38, 48.99) controlPoint1: CGPointMake(119.11, 44.56) controlPoint2: CGPointMake(118.6, 46.87)];
  88. [bezierPath addCurveToPoint: CGPointMake(108.97, 54) controlPoint1: CGPointMake(115.52, 52.2) controlPoint2: CGPointMake(112.75, 53.97)];
  89. [bezierPath addCurveToPoint: CGPointMake(105.76, 53.8) controlPoint1: CGPointMake(107.9, 54) controlPoint2: CGPointMake(106.8, 54.02)];
  90. [bezierPath addCurveToPoint: CGPointMake(101.19, 49.25) controlPoint1: CGPointMake(103.3, 53.26) controlPoint2: CGPointMake(101.73, 51.62)];
  91. [bezierPath addCurveToPoint: CGPointMake(102.47, 38.85) controlPoint1: CGPointMake(100.37, 45.67) controlPoint2: CGPointMake(100.59, 42.13)];
  92. [bezierPath addCurveToPoint: CGPointMake(109.3, 34.21) controlPoint1: CGPointMake(103.99, 36.22) controlPoint2: CGPointMake(106.29, 34.71)];
  93. [bezierPath addCurveToPoint: CGPointMake(113.49, 34.2) controlPoint1: CGPointMake(110.7, 33.97) controlPoint2: CGPointMake(112.08, 33.96)];
  94. [bezierPath addCurveToPoint: CGPointMake(118.97, 40.15) controlPoint1: CGPointMake(116.67, 34.74) controlPoint2: CGPointMake(118.72, 36.92)];
  95. [bezierPath addCurveToPoint: CGPointMake(118.98, 42.12) controlPoint1: CGPointMake(119.02, 40.8) controlPoint2: CGPointMake(118.98, 41.46)];
  96. [bezierPath closePath];
  97. [bezierPath moveToPoint: CGPointMake(107.37, 45.48)];
  98. [bezierPath addCurveToPoint: CGPointMake(107.54, 45.5) controlPoint1: CGPointMake(107.43, 45.48) controlPoint2: CGPointMake(107.48, 45.49)];
  99. [bezierPath addCurveToPoint: CGPointMake(107.55, 47.1) controlPoint1: CGPointMake(107.54, 46.04) controlPoint2: CGPointMake(107.5, 46.57)];
  100. [bezierPath addCurveToPoint: CGPointMake(108.89, 48.99) controlPoint1: CGPointMake(107.64, 48.09) controlPoint2: CGPointMake(108.18, 48.82)];
  101. [bezierPath addCurveToPoint: CGPointMake(110.96, 47.92) controlPoint1: CGPointMake(109.58, 49.16) controlPoint2: CGPointMake(110.4, 48.74)];
  102. [bezierPath addCurveToPoint: CGPointMake(111.09, 47.71) controlPoint1: CGPointMake(111, 47.85) controlPoint2: CGPointMake(111.05, 47.79)];
  103. [bezierPath addCurveToPoint: CGPointMake(112.18, 40.52) controlPoint1: CGPointMake(112.23, 45.43) controlPoint2: CGPointMake(112.51, 43.02)];
  104. [bezierPath addCurveToPoint: CGPointMake(111.11, 39.14) controlPoint1: CGPointMake(112.1, 39.9) controlPoint2: CGPointMake(111.81, 39.33)];
  105. [bezierPath addCurveToPoint: CGPointMake(109.2, 39.73) controlPoint1: CGPointMake(110.36, 38.95) controlPoint2: CGPointMake(109.66, 39.14)];
  106. [bezierPath addCurveToPoint: CGPointMake(108.08, 41.75) controlPoint1: CGPointMake(108.73, 40.33) controlPoint2: CGPointMake(108.29, 41.03)];
  107. [bezierPath addCurveToPoint: CGPointMake(107.37, 45.48) controlPoint1: CGPointMake(107.74, 42.96) controlPoint2: CGPointMake(107.6, 44.23)];
  108. [bezierPath closePath];
  109. [bezierPath moveToPoint: CGPointMake(12, 35.08)];
  110. [bezierPath addCurveToPoint: CGPointMake(13.83, 34.83) controlPoint1: CGPointMake(12.73, 34.98) controlPoint2: CGPointMake(13.28, 34.89)];
  111. [bezierPath addCurveToPoint: CGPointMake(17.44, 34.46) controlPoint1: CGPointMake(15.03, 34.69) controlPoint2: CGPointMake(16.24, 34.55)];
  112. [bezierPath addCurveToPoint: CGPointMake(18.72, 35.54) controlPoint1: CGPointMake(18.39, 34.39) controlPoint2: CGPointMake(18.6, 34.58)];
  113. [bezierPath addCurveToPoint: CGPointMake(19.75, 44.26) controlPoint1: CGPointMake(19.08, 38.45) controlPoint2: CGPointMake(19.4, 41.36)];
  114. [bezierPath addCurveToPoint: CGPointMake(20.28, 47.47) controlPoint1: CGPointMake(19.87, 45.33) controlPoint2: CGPointMake(20.02, 46.39)];
  115. [bezierPath addCurveToPoint: CGPointMake(23.06, 41.7) controlPoint1: CGPointMake(21.55, 45.7) controlPoint2: CGPointMake(22.38, 43.74)];
  116. [bezierPath addCurveToPoint: CGPointMake(23.16, 35.38) controlPoint1: CGPointMake(23.75, 39.62) controlPoint2: CGPointMake(23.88, 37.53)];
  117. [bezierPath addCurveToPoint: CGPointMake(23.98, 34.99) controlPoint1: CGPointMake(23.49, 35.22) controlPoint2: CGPointMake(23.72, 35.05)];
  118. [bezierPath addCurveToPoint: CGPointMake(28.25, 34.07) controlPoint1: CGPointMake(25.4, 34.67) controlPoint2: CGPointMake(26.82, 34.36)];
  119. [bezierPath addCurveToPoint: CGPointMake(29.46, 34.73) controlPoint1: CGPointMake(29.01, 33.91) controlPoint2: CGPointMake(29.17, 33.97)];
  120. [bezierPath addCurveToPoint: CGPointMake(29.93, 36.66) controlPoint1: CGPointMake(29.69, 35.35) controlPoint2: CGPointMake(29.86, 36.01)];
  121. [bezierPath addCurveToPoint: CGPointMake(28.75, 43.64) controlPoint1: CGPointMake(30.19, 39.1) controlPoint2: CGPointMake(29.68, 41.41)];
  122. [bezierPath addCurveToPoint: CGPointMake(23.03, 53.4) controlPoint1: CGPointMake(27.27, 47.16) controlPoint2: CGPointMake(25.23, 50.33)];
  123. [bezierPath addCurveToPoint: CGPointMake(22.17, 53.97) controlPoint1: CGPointMake(22.84, 53.67) controlPoint2: CGPointMake(22.46, 53.96)];
  124. [bezierPath addCurveToPoint: CGPointMake(15.03, 54) controlPoint1: CGPointMake(19.83, 54.02) controlPoint2: CGPointMake(17.49, 54)];
  125. [bezierPath addCurveToPoint: CGPointMake(13.49, 44.53) controlPoint1: CGPointMake(14.51, 50.78) controlPoint2: CGPointMake(13.99, 47.65)];
  126. [bezierPath addCurveToPoint: CGPointMake(12, 35.08) controlPoint1: CGPointMake(12.99, 41.41) controlPoint2: CGPointMake(12.4, 38.31)];
  127. [bezierPath closePath];
  128. [bezierPath moveToPoint: CGPointMake(38.37, 45.72)];
  129. [bezierPath addCurveToPoint: CGPointMake(41.21, 48.8) controlPoint1: CGPointMake(38.38, 47.8) controlPoint2: CGPointMake(39.3, 48.75)];
  130. [bezierPath addCurveToPoint: CGPointMake(45.43, 47.88) controlPoint1: CGPointMake(42.69, 48.84) controlPoint2: CGPointMake(44.07, 48.4)];
  131. [bezierPath addCurveToPoint: CGPointMake(46.75, 47.34) controlPoint1: CGPointMake(45.8, 47.73) controlPoint2: CGPointMake(46.18, 47.57)];
  132. [bezierPath addCurveToPoint: CGPointMake(45.97, 52.45) controlPoint1: CGPointMake(46.49, 49.15) controlPoint2: CGPointMake(46.28, 50.81)];
  133. [bezierPath addCurveToPoint: CGPointMake(45.18, 53.12) controlPoint1: CGPointMake(45.92, 52.72) controlPoint2: CGPointMake(45.5, 53.03)];
  134. [bezierPath addCurveToPoint: CGPointMake(42.05, 53.85) controlPoint1: CGPointMake(44.15, 53.42) controlPoint2: CGPointMake(43.11, 53.75)];
  135. [bezierPath addCurveToPoint: CGPointMake(37.72, 53.88) controlPoint1: CGPointMake(40.62, 53.98) controlPoint2: CGPointMake(39.14, 54.06)];
  136. [bezierPath addCurveToPoint: CGPointMake(31.74, 47.78) controlPoint1: CGPointMake(34.3, 53.45) controlPoint2: CGPointMake(32.15, 51.27)];
  137. [bezierPath addCurveToPoint: CGPointMake(34.04, 38.05) controlPoint1: CGPointMake(31.32, 44.29) controlPoint2: CGPointMake(31.95, 40.99)];
  138. [bezierPath addCurveToPoint: CGPointMake(44.6, 34.35) controlPoint1: CGPointMake(36.45, 34.65) controlPoint2: CGPointMake(40.9, 33.31)];
  139. [bezierPath addCurveToPoint: CGPointMake(46.79, 42.8) controlPoint1: CGPointMake(48.43, 35.42) controlPoint2: CGPointMake(49.6, 39.99)];
  140. [bezierPath addCurveToPoint: CGPointMake(41.48, 45.3) controlPoint1: CGPointMake(45.32, 44.27) controlPoint2: CGPointMake(43.45, 44.9)];
  141. [bezierPath addCurveToPoint: CGPointMake(38.37, 45.72) controlPoint1: CGPointMake(40.48, 45.5) controlPoint2: CGPointMake(39.45, 45.58)];
  142. [bezierPath closePath];
  143. [bezierPath moveToPoint: CGPointMake(38.49, 42.08)];
  144. [bezierPath addCurveToPoint: CGPointMake(42.3, 40.96) controlPoint1: CGPointMake(40.01, 42.18) controlPoint2: CGPointMake(41.22, 41.79)];
  145. [bezierPath addCurveToPoint: CGPointMake(42.73, 40.36) controlPoint1: CGPointMake(42.49, 40.82) controlPoint2: CGPointMake(42.63, 40.58)];
  146. [bezierPath addCurveToPoint: CGPointMake(42.52, 38.87) controlPoint1: CGPointMake(42.96, 39.83) controlPoint2: CGPointMake(42.92, 39.31)];
  147. [bezierPath addCurveToPoint: CGPointMake(41.16, 38.52) controlPoint1: CGPointMake(42.16, 38.46) controlPoint2: CGPointMake(41.68, 38.36)];
  148. [bezierPath addCurveToPoint: CGPointMake(40.36, 38.85) controlPoint1: CGPointMake(40.88, 38.6) controlPoint2: CGPointMake(40.59, 38.69)];
  149. [bezierPath addCurveToPoint: CGPointMake(38.49, 42.08) controlPoint1: CGPointMake(39.31, 39.6) controlPoint2: CGPointMake(38.62, 40.57)];
  150. [bezierPath addLineToPoint: CGPointMake(38.49, 42.08)];
  151. [bezierPath closePath];
  152. bezierPath.miterLimit = 4;
  153. bezierPath.usesEvenOddFillRule = YES;
  154. [color setFill];
  155. [bezierPath fill];
  156. }
  157. }
  158. }
  159. }
  160. - (void)updateConstraints {
  161. NSLayoutConstraint *aspectRatioConstraint = [NSLayoutConstraint constraintWithItem:self
  162. attribute:NSLayoutAttributeWidth
  163. relatedBy:NSLayoutRelationEqual
  164. toItem:self
  165. attribute:NSLayoutAttributeHeight
  166. multiplier:(self.artDimensions.width / self.artDimensions.height)
  167. constant:0.0f];
  168. aspectRatioConstraint.priority = UILayoutPriorityRequired;
  169. [self addConstraint:aspectRatioConstraint];
  170. [super updateConstraints];
  171. }
  172. - (UILayoutPriority)contentCompressionResistancePriorityForAxis:(__unused UILayoutConstraintAxis)axis {
  173. return UILayoutPriorityRequired;
  174. }
  175. @end