它们的定义View

Ios“巷自己的定义View和Android类别似

在.h文件设置了他的一些财产。方法

在.m文件中实现

.h文件

#import <UIKit/UIKit.h>

CGPoint CGRectGetCenter(CGRect rect);

CGRect  CGRectMoveToCenter(CGRect rect,
CGPoint center);

@interface UIView (ViewFrameGeometry)

@property
CGPoint origin;

@property CGSize size;

@property (readonly)
CGPoint bottomLeft;

@property (readonly)
CGPoint bottomRight;

@property (readonly)
CGPoint topRight;

@property
CGFloat height;

@property CGFloat width;

@property CGFloat top;

@property CGFloat left;

@property
CGFloat bottom;

@property CGFloat right;

- (void) moveBy: (CGPoint) delta;

- (void) scaleBy: (CGFloat) scaleFactor;

- (void) fitInSize: (CGSize) aSize;

@end

.m文件

#import "UIViewExt.h"

CGPoint CGRectGetCenter(CGRect rect)

{

CGPoint pt;

pt.x =
CGRectGetMidX(rect);

pt.y =
CGRectGetMidY(rect);

return pt;

}

CGRect CGRectMoveToCenter(CGRect rect,
CGPoint center)

{

CGRect newrect = CGRectZero;

newrect.origin.x = center.x-CGRectGetMidX(rect);

newrect.origin.y = center.y-CGRectGetMidY(rect);

newrect.size = rect.size;

return newrect;

}

@implementation UIView (ViewGeometry)

// Retrieve and set the origin

- (CGPoint) origin

{

return
self.frame.origin;

}

- (void) setOrigin: (CGPoint) aPoint

{

CGRect newframe =
self.frame;

newframe.origin = aPoint;

self.frame = newframe;

}

// Retrieve and set the size

- (CGSize) size

{

return
self.frame.size;

}

- (void) setSize: (CGSize) aSize

{

CGRect newframe =
self.frame;

newframe.size = aSize;

self.frame = newframe;

}

// Query other frame locations

- (CGPoint) bottomRight

{

CGFloat x =
self.frame.origin.x +
self.frame.size.width;

CGFloat y =
self.frame.origin.y +
self.frame.size.height;

return
CGPointMake(x, y);

}

- (CGPoint) bottomLeft

{

CGFloat x =
self.frame.origin.x;

CGFloat y =
self.frame.origin.y +
self.frame.size.height;

return
CGPointMake(x, y);

}

- (CGPoint) topRight

{

CGFloat x =
self.frame.origin.x +
self.frame.size.width;

CGFloat y =
self.frame.origin.y;

return
CGPointMake(x, y);

}

// Retrieve and set height, width, top, bottom, left, right

- (CGFloat) height

{

return
self.frame.size.height;

}

- (void) setHeight: (CGFloat) newheight

{

CGRect newframe =
self.frame;

newframe.size.height = newheight;

self.frame = newframe;

}

- (CGFloat) width

{

return
self.frame.size.width;

}

- (void) setWidth: (CGFloat) newwidth

{

CGRect newframe =
self.frame;

newframe.size.width = newwidth;

self.frame = newframe;

}

- (CGFloat) top

{

return
self.frame.origin.y;

}

- (void) setTop: (CGFloat) newtop

{

CGRect newframe =
self.frame;

newframe.origin.y = newtop;

self.frame = newframe;

}

- (CGFloat) left

{

return
self.frame.origin.x;

}

- (void) setLeft: (CGFloat) newleft

{

CGRect newframe =
self.frame;

newframe.origin.x = newleft;

self.frame = newframe;

}

- (CGFloat) bottom

{

return
self.frame.origin.y +
self.frame.size.height;

}

- (void) setBottom: (CGFloat) newbottom

{

CGRect newframe =
self.frame;

newframe.origin.y = newbottom -
self.frame.size.height;

self.frame = newframe;

}

- (CGFloat) right

{

return
self.frame.origin.x +
self.frame.size.width;

}

- (void) setRight: (CGFloat) newright

{

CGFloat delta = newright - (self.frame.origin.x +
self.frame.size.width);

CGRect newframe =
self.frame;

newframe.origin.x += delta ;

self.frame = newframe;

}

// Move via offset

- (void) moveBy: (CGPoint) delta

{

CGPoint newcenter =
self.center;

newcenter.x += delta.x;

newcenter.y += delta.y;

self.center = newcenter;

}

// Scaling

- (void) scaleBy: (CGFloat) scaleFactor

{

CGRect newframe =
self.frame;

newframe.size.width *= scaleFactor;

newframe.size.height *= scaleFactor;

self.frame = newframe;

}

// Ensure that both dimensions fit within the given size by scaling down

- (void) fitInSize: (CGSize) aSize

{

CGFloat scale;

CGRect newframe =
self.frame;

if (newframe.size.height && (newframe.size.height > aSize.height))

{

scale = aSize.height / newframe.size.height;

newframe.size.width *= scale;

newframe.size.height *= scale;

}

if (newframe.size.width && (newframe.size.width >= aSize.width))

{

scale = aSize.width / newframe.size.width;

newframe.size.width *= scale;

newframe.size.height *= scale;

}

self.frame = newframe;

}

@end

版权声明:本文博客原创文章。博客,未经同意,不得转载。

上一篇:【HDOJ】1429 胜利大逃亡(续)


下一篇:linux小白