UIView+YYAdd.m 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. //
  2. // UIView+YYAdd.m
  3. // YYCategories <https://github.com/ibireme/YYCategories>
  4. //
  5. // Created by ibireme on 13/4/3.
  6. // Copyright (c) 2015 ibireme.
  7. //
  8. // This source code is licensed under the MIT-style license found in the
  9. // LICENSE file in the root directory of this source tree.
  10. //
  11. #import "UIView+YYAdd.h"
  12. #import <QuartzCore/QuartzCore.h>
  13. @implementation UIView (YYAdd)
  14. - (void)setLayerShadow:(UIColor*)color offset:(CGSize)offset radius:(CGFloat)radius {
  15. self.layer.shadowColor = color.CGColor;
  16. self.layer.shadowOffset = offset;
  17. self.layer.shadowRadius = radius;
  18. self.layer.shadowOpacity = 1;
  19. self.layer.shouldRasterize = YES;
  20. self.layer.rasterizationScale = [UIScreen mainScreen].scale;
  21. }
  22. - (void)removeAllSubviews {
  23. //[self.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
  24. while (self.subviews.count) {
  25. [self.subviews.lastObject removeFromSuperview];
  26. }
  27. }
  28. - (UIViewController *)viewController {
  29. for (UIView *view = self; view; view = view.superview) {
  30. UIResponder *nextResponder = [view nextResponder];
  31. if ([nextResponder isKindOfClass:[UIViewController class]]) {
  32. return (UIViewController *)nextResponder;
  33. }
  34. }
  35. return nil;
  36. }
  37. - (CGFloat)left {
  38. return self.frame.origin.x;
  39. }
  40. - (void)setLeft:(CGFloat)x {
  41. CGRect frame = self.frame;
  42. frame.origin.x = x;
  43. self.frame = frame;
  44. }
  45. - (CGFloat)top {
  46. return self.frame.origin.y;
  47. }
  48. - (void)setTop:(CGFloat)y {
  49. CGRect frame = self.frame;
  50. frame.origin.y = y;
  51. self.frame = frame;
  52. }
  53. - (CGFloat)right {
  54. return self.frame.origin.x + self.frame.size.width;
  55. }
  56. - (void)setRight:(CGFloat)right {
  57. CGRect frame = self.frame;
  58. frame.origin.x = right - frame.size.width;
  59. self.frame = frame;
  60. }
  61. - (CGFloat)bottom {
  62. return self.frame.origin.y + self.frame.size.height;
  63. }
  64. - (void)setBottom:(CGFloat)bottom {
  65. CGRect frame = self.frame;
  66. frame.origin.y = bottom - frame.size.height;
  67. self.frame = frame;
  68. }
  69. - (CGFloat)width {
  70. return self.frame.size.width;
  71. }
  72. - (void)setWidth:(CGFloat)width {
  73. CGRect frame = self.frame;
  74. frame.size.width = width;
  75. self.frame = frame;
  76. }
  77. - (CGFloat)height {
  78. return self.frame.size.height;
  79. }
  80. - (void)setHeight:(CGFloat)height {
  81. CGRect frame = self.frame;
  82. frame.size.height = height;
  83. self.frame = frame;
  84. }
  85. - (CGFloat)centerX {
  86. return self.center.x;
  87. }
  88. - (void)setCenterX:(CGFloat)centerX {
  89. self.center = CGPointMake(centerX, self.center.y);
  90. }
  91. - (CGFloat)centerY {
  92. return self.center.y;
  93. }
  94. - (void)setCenterY:(CGFloat)centerY {
  95. self.center = CGPointMake(self.center.x, centerY);
  96. }
  97. - (CGPoint)origin {
  98. return self.frame.origin;
  99. }
  100. - (void)setOrigin:(CGPoint)origin {
  101. CGRect frame = self.frame;
  102. frame.origin = origin;
  103. self.frame = frame;
  104. }
  105. - (CGSize)size {
  106. return self.frame.size;
  107. }
  108. - (void)setSize:(CGSize)size {
  109. CGRect frame = self.frame;
  110. frame.size = size;
  111. self.frame = frame;
  112. }
  113. @end