iOS UIView 常用 Category(类目)分享

西门桃桃 2020-08-01 PM 2383℃ 0条

1、快速获取修改UIView的位置大小

- (CGSize)size {
    return [self frame].size;
}

- (void)setSize:(CGSize)size {
    CGPoint origin = [self frame].origin;
    [self setFrame:CGRectMake(origin.x, origin.y, size.width, size.height)];
}

- (void)setOrigin:(CGPoint)origin
{
    CGRect frame = self.frame;
    frame.origin = origin;
    self.frame = frame;
}

- (CGPoint)origin
{
    return self.frame.origin;
}

-(CGFloat)x {
    CGRect frame=[self frame];
    return frame.origin.x;
}

-(void)setX:(CGFloat)x {
    CGRect frame=[self frame];
    frame.origin.x=x;
    [self setFrame:frame];
}

-(CGFloat)y {
    CGRect frame=[self frame];
    return frame.origin.y;
}

-(void)setY:(CGFloat)y {
    CGRect frame=[self frame];
    frame.origin.y=y;
    return [self setFrame:frame];
}

- (CGFloat)left {
    return CGRectGetMinX([self frame]);
}

- (void)setLeft:(CGFloat)x {
    CGRect frame = [self frame];
    frame.origin.x = x;
    [self setFrame:frame];
}

- (CGFloat)top {
    return CGRectGetMinY([self frame]);
}

- (void)setTop:(CGFloat)y {
    CGRect frame = [self frame];
    frame.origin.y = y;
    [self setFrame:frame];
}

- (CGFloat)right {
    return CGRectGetMaxX([self frame]);
}

- (void)setRight:(CGFloat)right {
    CGRect frame = [self frame];
    frame.origin.x = right - frame.size.width;
    
    [self setFrame:frame];
}

- (CGFloat)bottom {
    return CGRectGetMaxY([self frame]);
}

- (void)setBottom:(CGFloat)bottom {
    CGRect frame = [self frame];
    frame.origin.y = bottom - frame.size.height;
    [self setFrame:frame];
}

- (CGFloat)centerX {
    return [self center].x;
}

- (void)setCenterX:(CGFloat)centerX {
    [self setCenter:CGPointMake(centerX, self.center.y)];
}

- (CGFloat)centerY {
    return [self center].y;
}

- (void)setCenterY:(CGFloat)centerY {
    [self setCenter:CGPointMake(self.center.x, centerY)];
}

- (CGFloat)width {
    return CGRectGetWidth([self frame]);
}

- (void)setWidth:(CGFloat)width {
    CGRect frame = [self frame];
    frame.size.width = width;
    [self setFrame:CGRectStandardize(frame)];
}

- (CGFloat)height {
    return CGRectGetHeight([self frame]);
}

- (void)setHeight:(CGFloat)height {
    CGRect frame=[self frame];
    frame.size.height = height;
    [self setFrame:CGRectStandardize(frame)];
}

- (CGFloat)minX {
    CGRect frame=[self frame];
    return CGRectGetMinX(frame);
}

- (CGFloat)maxX {
    CGRect frame=[self frame];
    return CGRectGetMaxX(frame);
}

- (CGFloat)minY {
    CGRect frame=[self frame];
    return CGRectGetMinY(frame);
}

- (CGFloat)maxY {
    CGRect frame=[self frame];
    return CGRectGetMaxY(frame);
}

2、获取当前UIView的superView对应的控制器

-(UIViewController *)getViewController{
    UIResponder *next = [self nextResponder];
    do {
        if ([next isKindOfClass:[UIViewController class]]) {
            if (![next isKindOfClass:[UINavigationController class]]) {
                return (UIViewController *)next;//避免找到NavigationVC
            }
        }
        next = [next nextResponder];
    } while (next != nil);
    return [[UIViewController alloc] init];
}
标签: Objective-C, Category, UIView

非特殊说明,本博所有文章均为博主原创。

评论啦~