首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

【OBJC种扩展之定位】

2013-01-28 
【OBJC类扩展之定位】#import UIKit/UIKit.h @interface UIView (Positioning) - (void)centerInRect:(CGR

【OBJC类扩展之定位】

#import <UIKit/UIKit.h>@interface UIView (Positioning)- (void)centerInRect:(CGRect)rect;- (void)centerVerticallyInRect:(CGRect)rect;- (void)centerHorizontallyInRect:(CGRect)rect;- (void)centerInSuperView;- (void)centerVerticallyInSuperView;- (void)centerHorizontallyInSuperView;- (void)centerHorizontallyBelow:(UIView *)view padding:(CGFloat)padding;- (void)centerHorizontallyBelow:(UIView *)view;@end#import "UIView+Positioning.h"#import "UIView+Size.h"@implementation UIView (Positioning)//针对给定的坐标系居中- (void)centerInRect:(CGRect)rect;{    //如果参数是小数,则求最大的整数但不大于本身.    //CGRectGetMidX获取中心点的X轴坐标  [self setCenter:CGPointMake(floorf(CGRectGetMidX(rect)) + ((int)floorf([self width]) % 2 ? .5 : 0) , floorf(CGRectGetMidY(rect)) + ((int)floorf([self height]) % 2 ? .5 : 0))];}//针对给定的坐标系纵向居中- (void)centerVerticallyInRect:(CGRect)rect;{  [self setCenter:CGPointMake([self center].x, floorf(CGRectGetMidY(rect)) + ((int)floorf([self height]) % 2 ? .5 : 0))];}//针对给定的坐标系横向居中- (void)centerHorizontallyInRect:(CGRect)rect;{  [self setCenter:CGPointMake(floorf(CGRectGetMidX(rect)) + ((int)floorf([self width]) % 2 ? .5 : 0), [self center].y)];}//相对父视图居中- (void)centerInSuperView;{  [self centerInRect:[[self superview] bounds]];}- (void)centerVerticallyInSuperView;{  [self centerVerticallyInRect:[[self superview] bounds]];}- (void)centerHorizontallyInSuperView;{  [self centerHorizontallyInRect:[[self superview] bounds]];}//同一父视图的兄弟视图水平居中- (void)centerHorizontallyBelow:(UIView *)view padding:(CGFloat)padding;{    // for now, could use screen relative positions.  NSAssert([self superview] == [view superview], @"views must have the same parent");    [self setCenter:CGPointMake([view center].x,                              floorf(padding + CGRectGetMaxY([view frame]) + ([self height] / 2)))];}- (void)centerHorizontallyBelow:(UIView *)view;{  [self centerHorizontallyBelow:view padding:0];}@end

热点排行