| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414 |
- //
- // UIView+Layout.m
- // CommonLibrary
- //
- // Created by Alexi Chen on 2/28/13.
- // Copyright (c) 2013 AlexiChen. All rights reserved.
- //
- #import "UIView+Layout.h"
- #import <YYKit/YYkit.h>
- @implementation UIView (Layout)
- @dynamic top;
- @dynamic bottom;
- @dynamic left;
- @dynamic right;
- @dynamic width;
- @dynamic height;
- @dynamic size;
- @dynamic x;
- @dynamic y;
- - (CGFloat)tz_left {
- return self.frame.origin.x;
- }
- - (void)setTz_left:(CGFloat)x {
- CGRect frame = self.frame;
- frame.origin.x = x;
- self.frame = frame;
- }
- - (CGFloat)tz_top {
- return self.frame.origin.y;
- }
- - (void)setTz_top:(CGFloat)y {
- CGRect frame = self.frame;
- frame.origin.y = y;
- self.frame = frame;
- }
- - (CGFloat)tz_right {
- return self.frame.origin.x + self.frame.size.width;
- }
- - (void)setTz_right:(CGFloat)right {
- CGRect frame = self.frame;
- frame.origin.x = right - frame.size.width;
- self.frame = frame;
- }
- - (CGFloat)tz_bottom {
- return self.frame.origin.y + self.frame.size.height;
- }
- - (void)setTz_bottom:(CGFloat)bottom {
- CGRect frame = self.frame;
- frame.origin.y = bottom - frame.size.height;
- self.frame = frame;
- }
- - (CGFloat)tz_width {
- return self.frame.size.width;
- }
- - (void)setTz_width:(CGFloat)width {
- CGRect frame = self.frame;
- frame.size.width = width;
- self.frame = frame;
- }
- - (CGFloat)tz_height {
- return self.frame.size.height;
- }
- - (void)setTz_height:(CGFloat)height {
- CGRect frame = self.frame;
- frame.size.height = height;
- self.frame = frame;
- }
- - (CGFloat)tz_centerX {
- return self.center.x;
- }
- - (void)setTz_centerX:(CGFloat)centerX {
- self.center = CGPointMake(centerX, self.center.y);
- }
- - (CGFloat)tz_centerY {
- return self.center.y;
- }
- - (void)setTz_centerY:(CGFloat)centerY {
- self.center = CGPointMake(self.center.x, centerY);
- }
- - (CGPoint)tz_origin {
- return self.frame.origin;
- }
- - (void)setTz_origin:(CGPoint)origin {
- CGRect frame = self.frame;
- frame.origin = origin;
- self.frame = frame;
- }
- - (CGSize)tz_size {
- return self.frame.size;
- }
- - (void)setTz_size:(CGSize)size {
- CGRect frame = self.frame;
- frame.size = size;
- self.frame = frame;
- }
- + (void)showOscillatoryAnimationWithLayer:(CALayer *)layer type:(TZOscillatoryAnimationType)type{
- NSNumber *animationScale1 = type == TZOscillatoryAnimationToBigger ? @(1.15) : @(0.5);
- NSNumber *animationScale2 = type == TZOscillatoryAnimationToBigger ? @(0.92) : @(1.15);
-
- [UIView animateWithDuration:0.15 delay:0 options:UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionCurveEaseInOut animations:^{
- [layer setValue:animationScale1 forKeyPath:@"transform.scale"];
- } completion:^(BOOL finished) {
- [UIView animateWithDuration:0.15 delay:0 options:UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionCurveEaseInOut animations:^{
- [layer setValue:animationScale2 forKeyPath:@"transform.scale"];
- } completion:^(BOOL finished) {
- [UIView animateWithDuration:0.1 delay:0 options:UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionCurveEaseInOut animations:^{
- [layer setValue:@(1.0) forKeyPath:@"transform.scale"];
- } completion:nil];
- }];
- }];
- }
- - (CGFloat)top
- {
- return self.frame.origin.y;
- }
- - (void)setTop:(CGFloat)top
- {
- CGRect frame = self.frame;
- frame.origin.y = top;
- self.frame = frame;
- }
- - (CGFloat)left
- {
- return self.frame.origin.x;
- }
- - (void)setLeft:(CGFloat)left
- {
- CGRect frame = self.frame;
- frame.origin.x = left;
- self.frame = frame;
- }
- - (CGFloat)bottom
- {
- return self.frame.size.height + self.frame.origin.y;
- }
- - (void)setBottom:(CGFloat)bottom
- {
- CGRect frame = self.frame;
- frame.origin.y = bottom - frame.size.height;
- self.frame = frame;
- }
- - (CGFloat)right
- {
- return self.frame.size.width + self.frame.origin.x;
- }
- - (void)setRight:(CGFloat)right
- {
- CGRect frame = self.frame;
- frame.origin.x = right - frame.size.width;
- self.frame = frame;
- }
- - (CGFloat)x
- {
- return self.frame.origin.x;
- }
- - (void)setX:(CGFloat)value
- {
- CGRect frame = self.frame;
- frame.origin.x = value;
- self.frame = frame;
- }
- - (CGFloat)y
- {
- return self.frame.origin.y;
- }
- - (void)setY:(CGFloat)value
- {
- CGRect frame = self.frame;
- frame.origin.y = value;
- self.frame = frame;
- }
- - (CGPoint)origin
- {
- return self.frame.origin;
- }
- - (void)setOrigin:(CGPoint)origin
- {
- CGRect frame = self.frame;
- frame.origin = origin;
- self.frame = frame;
- }
- - (CGFloat)centerX
- {
- return self.center.x;
- }
- - (void)setCenterX:(CGFloat)centerX
- {
- CGPoint center = self.center;
- center.x = centerX;
- self.center = center;
- }
- - (CGFloat)centerY
- {
- return self.center.y;
- }
- - (void)setCenterY:(CGFloat)centerY
- {
- CGPoint center = self.center;
- center.y = centerY;
- self.center = center;
- }
- - (CGFloat)width
- {
- return self.frame.size.width;
- }
- - (void)setWidth:(CGFloat)width
- {
- CGRect frame = self.frame;
- frame.size.width = width;
- self.frame = frame;
- }
- - (CGFloat)height
- {
- return self.frame.size.height;
- }
- - (void)setHeight:(CGFloat)height
- {
- CGRect frame = self.frame;
- frame.size.height = height;
- self.frame = frame;
- }
- - (CGSize)size
- {
- return self.frame.size;
- }
- - (void)setSize:(CGSize)size
- {
- CGRect frame = self.frame;
- frame.size = size;
- self.frame = frame;
- }
- //- (id)init
- //{
- // if (self = [self initWithFrame:CGRectZero]) {
- //
- // if (![self isAutoLayout])
- // {
- // [self addOwnViews];
- // [self configOwnViews];
- // }
- // else
- // {
- // [self autoLayoutSubViews];
- // }
- //
- // }
- // return self;
- //}
- // (void)load
- //{
- // static dispatch_once_t onceToken;
- // dispatch_once(&onceToken, ^{
- //
- // [UIView swizzleClassMethod:@selector(init) with:@selector(fk_init)];
- //// [self swizzleInstanceSelector:@selector(modalPresentationStyle) withSelector:@selector(uiviewController_modalPresentationStyle)];
- // });
- //}
- //- (instancetype)fk_init
- //{
- // self = [super init];
- //// if (self) {
- // if (![self isAutoLayout])
- // {
- // [self addOwnViews];
- // [self configOwnViews];
- // }
- // else
- // {
- // [self autoLayoutSubViews];
- // }
- //// }
- // return self;
- //}
- - (BOOL)isAutoLayout
- {
- return NO;
- }
- - (void)autoLayoutSubViews
- {
-
- }
- - (void)addOwnViews
- {
- // 添加自己的控件
- }
- - (void)configOwnViews
- {
- // 初始化控件的值
- }
- //- (void)configWith:(NSMutableDictionary *)jsonDic
- //{
- //
- //}
- - (void)setFrameAndLayout:(CGRect)rect
- {
- self.frame = rect;
- if (self.bounds.size.width != 0 && self.bounds.size.height != 0)
- {
- [self relayoutFrameOfSubViews];
- }
- }
- - (void)relayoutFrameOfSubViews
- {
- // do nothing here
- }
- - (void)addBottomLine:(CGRect)rect
- {
- [self addBottomLine:kLightGrayColor inRect:rect];
- }
- - (void)addBottomLine:(UIColor *)color inRect:(CGRect)rect
- {
- CGContextRef context = UIGraphicsGetCurrentContext();
- UIGraphicsPushContext(context);
-
- //Set the stroke (pen) color
- CGContextSetStrokeColorWithColor(context, color.CGColor);
- CGContextSetLineWidth(context, 1.0);
-
- CGContextBeginPath(context);
- CGContextMoveToPoint(context, CGRectGetMinX(rect), CGRectGetMaxY(rect));
- CGContextAddLineToPoint(context, CGRectGetMaxX(rect), CGRectGetMaxY(rect));
-
- CGContextStrokePath(context);
-
- UIGraphicsPopContext();
- }
- @end
- @implementation UIView (ShakeAnimation)
- - (void)shake
- {
- CGFloat t =4.0;
- CGAffineTransform translateRight = CGAffineTransformTranslate(CGAffineTransformIdentity, t, 0.0);
- CGAffineTransform translateLeft = CGAffineTransformTranslate(CGAffineTransformIdentity, -t, 0.0);
- self.transform = translateLeft;
- [UIView animateWithDuration:0.07 delay:0.0 options:UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat animations:^{
- [UIView setAnimationRepeatCount:2.0];
- self.transform = translateRight;
- } completion:^(BOOL finished) {
- if(finished)
- {
- [UIView animateWithDuration:0.05 delay:0.0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{
- self.transform =CGAffineTransformIdentity;
- } completion:NULL];
- }
- }];
- }
- @end
|