// // UIView+Additions.m // iBee // // #import "UIView+Additions.h" @implementation UIView (Additions) /////////////////////////////////////////////////////////////////////////////////////////////////// - (CGFloat)left { return self.frame.origin.x; } /////////////////////////////////////////////////////////////////////////////////////////////////// - (void)setLeft:(CGFloat)x { CGRect frame = self.frame; frame.origin.x = x; self.frame = frame; } /////////////////////////////////////////////////////////////////////////////////////////////////// - (CGFloat)top { return self.frame.origin.y; } /////////////////////////////////////////////////////////////////////////////////////////////////// - (void)setTop:(CGFloat)y { CGRect frame = self.frame; frame.origin.y = y; self.frame = frame; } /////////////////////////////////////////////////////////////////////////////////////////////////// - (CGFloat)right { return self.frame.origin.x + self.frame.size.width; } /////////////////////////////////////////////////////////////////////////////////////////////////// - (void)setRight:(CGFloat)right { CGRect frame = self.frame; frame.origin.x = right - frame.size.width; self.frame = frame; } /////////////////////////////////////////////////////////////////////////////////////////////////// - (CGFloat)bottom { return self.frame.origin.y + self.frame.size.height; } /////////////////////////////////////////////////////////////////////////////////////////////////// - (void)setBottom:(CGFloat)bottom { CGRect frame = self.frame; frame.origin.y = bottom - frame.size.height; self.frame = frame; } /////////////////////////////////////////////////////////////////////////////////////////////////// - (CGFloat)centerX { return self.center.x; } /////////////////////////////////////////////////////////////////////////////////////////////////// - (void)setCenterX:(CGFloat)centerX { self.center = CGPointMake(centerX, self.center.y); } /////////////////////////////////////////////////////////////////////////////////////////////////// - (CGFloat)centerY { return self.center.y; } /////////////////////////////////////////////////////////////////////////////////////////////////// - (void)setCenterY:(CGFloat)centerY { self.center = CGPointMake(self.center.x, centerY); } /////////////////////////////////////////////////////////////////////////////////////////////////// - (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; } /////////////////////////////////////////////////////////////////////////////////////////////////// - (CGFloat)ttScreenX { CGFloat x = 0.0f; for (UIView* view = self; view; view = view.superview) { x += view.left; } return x; } /////////////////////////////////////////////////////////////////////////////////////////////////// - (CGFloat)ttScreenY { CGFloat y = 0.0f; for (UIView* view = self; view; view = view.superview) { y += view.top; } return y; } /////////////////////////////////////////////////////////////////////////////////////////////////// - (CGFloat)screenViewX { CGFloat x = 0.0f; for (UIView* view = self; view; view = view.superview) { x += view.left; if ([view isKindOfClass:[UIScrollView class]]) { UIScrollView* scrollView = (UIScrollView*)view; x -= scrollView.contentOffset.x; } } return x; } /////////////////////////////////////////////////////////////////////////////////////////////////// - (CGFloat)screenViewY { CGFloat y = 0; for (UIView* view = self; view; view = view.superview) { y += view.top; if ([view isKindOfClass:[UIScrollView class]]) { UIScrollView* scrollView = (UIScrollView*)view; y -= scrollView.contentOffset.y; } } return y; } /////////////////////////////////////////////////////////////////////////////////////////////////// - (CGRect)screenFrame { return CGRectMake(self.screenViewX, self.screenViewY, self.width, self.height); } /////////////////////////////////////////////////////////////////////////////////////////////////// - (CGPoint)origin { return self.frame.origin; } /////////////////////////////////////////////////////////////////////////////////////////////////// - (void)setOrigin:(CGPoint)origin { CGRect frame = self.frame; frame.origin = origin; self.frame = frame; } /////////////////////////////////////////////////////////////////////////////////////////////////// - (CGSize)size { return self.frame.size; } /////////////////////////////////////////////////////////////////////////////////////////////////// - (void)setSize:(CGSize)size { CGRect frame = self.frame; frame.size = size; self.frame = frame; } -(void)removeAllSubviews{ while ([self.subviews count] > 0) { UIView *subview = [self.subviews objectAtIndex:0]; [subview removeFromSuperview]; } } -(void)removeViewWithTag:(NSInteger)tag{ if (tag == 0) { return; } UIView *view = [self viewWithTag:tag]; if (view) { [view removeFromSuperview]; } } -(void)removeSubViewArray:(NSMutableArray *)views{ for (UIView *sub in views) { [sub removeFromSuperview]; } } -(void)removeViewWithTags:(NSArray *)tagArray{ for (NSNumber *num in tagArray) { [self removeViewWithTag:[num integerValue]]; } } -(void)removeViewWithTagLessThan:(NSInteger)tag{ NSMutableArray *views = [NSMutableArray array]; for (UIView *view in self.subviews) { if (view.tag > 0 && view.tag < tag) { [views addObject:view]; } } [self removeSubViewArray:views]; } -(void)removeViewWithTagGreaterThan:(NSInteger)tag{ NSMutableArray *views = [NSMutableArray array]; for (UIView *view in self.subviews) { if (view.tag > 0 && view.tag > tag) { [views addObject:view]; } } [self removeSubViewArray:views]; } - (UIViewController*)selfViewController { for (UIView* next = [self superview]; next; next = next.superview) { UIResponder* nextResponder = [next nextResponder]; if ([nextResponder isKindOfClass:[UIViewController class]]) { return (UIViewController*)nextResponder; } } return nil; } -(UIView *)subviewWithTag:(NSInteger)tag{ for (UIView *sub in self.subviews) { if (sub.tag == tag) { return sub; } } return nil; } @end