Skip to content

Instantly share code, notes, and snippets.

@pepicrft
Last active August 29, 2015 13:58
Show Gist options
  • Save pepicrft/9944644 to your computer and use it in GitHub Desktop.
Save pepicrft/9944644 to your computer and use it in GitHub Desktop.
Extra methods and properties to UIViews
- (void)setFrameSize:(CGSize)size;
- (void)setFrameSizeWidth:(CGFloat)width;
- (void)setFrameSizeHeight:(CGFloat)height;
- (void)setFrameOrigin:(CGPoint)point;
- (void)setFrameOriginX:(CGFloat)x;
- (void)setFrameOriginY:(CGFloat)y;
- (void)centerVerticallyInParentFrame;
- (void)centerHorizontallyInParentFrame;
- (void)centerInParentFrame;
@property (nonatomic, getter=frameBottom,setter=setFrameBottom:) CGFloat frameBottom;
@property (nonatomic, getter=frameTop,setter=setFrameTop:) CGFloat frameTop;
@property (nonatomic, getter=frameRight,setter=setFrameRight:) CGFloat frameRight;
@property (nonatomic, getter=frameLeft,setter=setFrameLeft:) CGFloat frameLeft;
@property (nonatomic, getter=frameWidth,setter=setFrameWidth:) CGFloat frameWidth;
@property (nonatomic, getter=frameHeight,setter=setFrameHeight:) CGFloat frameHeight;
@property (nonatomic, setter=setCenterX:, getter=centerX) CGFloat centerX;
@property (nonatomic, setter=setCenterY:, getter=centerY) CGFloat centerY;
@property (nonatomic, setter=setCenter:, getter=center) CGPoint center;
@implementation centerInParentFrameUIView (Additions)
- (void)setFrameSize:(CGSize)size
{
[self setFrame:CGRectMake(self.frame.origin.x, self.frame.origin.y, size.width, size.height)];
}
- (void)setFrameSizeWidth:(CGFloat)width
{
[self setFrame:CGRectMake(self.frame.origin.x, self.frame.origin.y, width, self.frame.size.height)];
}
- (void)setFrameSizeHeight:(CGFloat)height
{
[self setFrame:CGRectMake(self.frame.origin.x, self.frame.origin.y, self.frame.size.width, height)];
}
- (void)setFrameOrigin:(CGPoint)point
{
[self setFrame:CGRectMake(point.x, point.y, self.frame.size.width, self.frame.size.height)];
}
- (void)setFrameOriginX:(CGFloat)x
{
[self setFrame:CGRectMake(x, self.frame.origin.y, self.frame.size.width, self.frame.size.height)];
}
- (void)setFrameOriginY:(CGFloat)y
{
[self setFrame:CGRectMake(self.frame.origin.x, y, self.frame.size.width, self.frame.size.height)];
}
- (CGFloat)frameBottom
{
return self.frame.origin.y + self.frame.size.height;
}
- (CGFloat)frameTop
{
return self.frame.origin.y;
}
- (CGFloat)frameLeft
{
return self.frame.origin.x;
}
- (CGFloat)frameRight
{
return self.frame.origin.x + self.frame.size.width;
}
- (CGFloat)frameWidth
{
return self.frame.size.width;
}
- (CGFloat)frameHeight
{
return self.frame.size.height;
}
- (void)setFrameBottom:(CGFloat)frameBottom
{
if (frameBottom >= self.frameTop) {
self.frame = CGRectMake(self.frameLeft, frameBottom - self.frameHeight, self.frameWidth, self.frameHeight);
}
}
- (void)setFrameTop:(CGFloat)frameTop
{
self.frame = CGRectMake(self.frameLeft, frameTop, self.frameWidth, self.frameHeight);
}
- (void)setFrameRight:(CGFloat)frameRight
{
self.frame = CGRectMake(frameRight - self.frameWidth, self.frameTop, self.frameWidth , self.frameHeight);
}
- (void)setFrameLeft:(CGFloat)frameLeft
{
self.frame = CGRectMake(frameLeft, self.frameTop, self.frameWidth , self.frameHeight);
}
- (void)setFrameHeight:(CGFloat)frameHeight
{
self.frame = CGRectMake(self.frameLeft, self.frameTop, self.frameWidth , frameHeight);
}
- (void)setFrameWidth:(CGFloat)frameWidth
{
self.frame = CGRectMake(self.frameLeft, self.frameTop, frameWidth , self.frameHeight);
}
- (void)centerVerticallyInParentFrame{
if ( self.superview ) {
CGRect superFrame = self.superview.frame;
self.frame = CGRectMake(self.frameLeft, superFrame.size.height/2 - self.frameHeight/2, self.frameWidth, self.frameHeight);
}
}
- (void)centerHorizontallyInParentFrame{
if ( self.superview ) {
CGRect superFrame = self.superview.frame;
self.frame = CGRectMake(superFrame.size.width/2 - self.frameWidth/2, self.frameTop, self.frameWidth, self.frameHeight);
}
}
- (void)centerInParentFrame {
[self centerHorizontallyInParentFrame];
[self centerVerticallyInParentFrame];
}
- (void)setCenterX:(CGFloat)centerX
{
self.frame = CGRectMake(centerX-self.frame.size.width/2, self.frameTop, self.frame.size.width, self.frame.size.height);
}
- (void)setCenterY:(CGFloat)centerY
{
self.frame = CGRectMake(self.frameLeft, centerY - self.frame.size.height/2, self.frame.size.width, self.frame.size.height);
}
- (CGFloat)centerX
{
return self.frameLeft + self.frame.size.width/2;
}
- (CGFloat)centerY
{
return self.frameTop + self.frame.size.height/2;
}
- (void)setCenter:(CGPoint)center
{
self.centerX = center.x;
self.centerY = center.y;
}
- (CGPoint)center
{
return CGPointMake(self.centerX, self.centerY);
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment