Я, наконец, последовал предложению @Dave DeLong и создал категорию. Все, что вам нужно сделать, это импортировать его в любой класс, который хочет воспользоваться этим.
UIView + AlterFrame.h
#import <UIKit/UIKit.h>
@interface UIView (AlterFrame)
- (void) setFrameWidth:(CGFloat)newWidth;
- (void) setFrameHeight:(CGFloat)newHeight;
- (void) setFrameOriginX:(CGFloat)newX;
- (void) setFrameOriginY:(CGFloat)newY;
@end
UIView + AlterFrame.m
#import "UIView+AlterFrame.h"
@implementation UIView (AlterFrame)
- (void) setFrameWidth:(CGFloat)newWidth {
CGRect f = self.frame;
f.size.width = newWidth;
self.frame = f;
}
- (void) setFrameHeight:(CGFloat)newHeight {
CGRect f = self.frame;
f.size.height = newHeight;
self.frame = f;
}
- (void) setFrameOriginX:(CGFloat)newX {
CGRect f = self.frame;
f.origin.x = newX;
self.frame = f;
}
- (void) setFrameOriginY:(CGFloat)newY {
CGRect f = self.frame;
f.origin.y = newY;
self.frame = f;
}
@end
Я мог бы высушить методы, используя блоки ... Надеюсь, я сделаю это в ближайшее время.
Позже: Я только что заметил CGRectOffset
и CGRectInset
, так что эту категорию можно немного убрать (если не устранить вообще).