UIView类的常用扩展<一>
来源:互联网 发布:php新手入门教程 编辑:程序博客网 时间:2024/06/02 12:28
/** * 查找该View的最上层的superViewClass类型的SuperView * * @param superViewClass 所查找的SuperView的类型 * * @return 查找到的SuperView */- (UIView *)findSuperViewWithClass:(Class)superViewClass { UIView *superView = self.superview; UIView *foundSuperView = nil; while (nil != superView && nil == foundSuperView) { if ([superView isKindOfClass:superViewClass]) { foundSuperView = superView; } else { superView = superView.superview; } } return foundSuperView;}
UIView (Utils) .h文件
/** * Shortcut for frame.origin.x. * * Sets frame.origin.x = left */@property (nonatomic) CGFloat left;/** * Shortcut for frame.origin.y * * Sets frame.origin.y = top */@property (nonatomic) CGFloat top;/** * Shortcut for frame.origin.x + frame.size.width * * Sets frame.origin.x = right - frame.size.width */@property (nonatomic) CGFloat right;/** * Shortcut for frame.origin.y + frame.size.height * * Sets frame.origin.y = bottom - frame.size.height */@property (nonatomic) CGFloat bottom;/** * Shortcut for frame.size.width * * Sets frame.size.width = width */@property (nonatomic) CGFloat width;/** * Shortcut for frame.size.height * * Sets frame.size.height = height */@property (nonatomic) CGFloat height;/** * Shortcut for center.x * * Sets center.x = centerX */@property (nonatomic) CGFloat centerX;/** * Shortcut for center.y * * Sets center.y = centerY */@property (nonatomic) CGFloat centerY;/** * Return the x coordinate on the screen. */@property (nonatomic, readonly) CGFloat screenX;/** * Return the y coordinate on the screen. */@property (nonatomic, readonly) CGFloat screenY;/** * Return the x coordinate on the screen, taking into account scroll views. */@property (nonatomic, readonly) CGFloat screenViewX;/** * Return the y coordinate on the screen, taking into account scroll views. */@property (nonatomic, readonly) CGFloat screenViewY;/** * Return the view frame on the screen, taking into account scroll views. */@property (nonatomic, readonly) CGRect screenFrame;/** * Shortcut for frame.origin */@property (nonatomic) CGPoint origin;/** * Shortcut for frame.size */@property (nonatomic) CGSize size;/** * Return the width in portrait or the height in landscape. */@property (nonatomic, readonly) CGFloat orientationWidth;/** * Return the height in portrait or the width in landscape. */@property (nonatomic, readonly) CGFloat orientationHeight;
UIView (Utils) .m文件
- (CGFloat)left { return self.frame.origin.x;}- (void)setLeft:(CGFloat)x { CGRect frame = self.frame; frame.origin.x = x; self.frame = frame;}- (CGFloat)top { return self.frame.origin.y;}- (void)setTop:(CGFloat)y { CGRect frame = self.frame; frame.origin.y = y; self.frame = frame;}- (CGFloat)right { return self.frame.origin.x + self.frame.size.width;}- (void)setRight:(CGFloat)right { CGRect frame = self.frame; frame.origin.x = right - frame.size.width; self.frame = frame;}- (CGFloat)bottom { return self.frame.origin.y + self.frame.size.height;}- (void)setBottom:(CGFloat)bottom { CGRect frame = self.frame; frame.origin.y = bottom - frame.size.height; self.frame = frame;}- (CGFloat)centerX { return self.center.x;}- (void)setCenterX:(CGFloat)centerX { self.center = CGPointMake(centerX, self.center.y);}- (CGFloat)centerY { return self.center.y;}- (void)setCenterY:(CGFloat)centerY { self.center = CGPointMake(self.center.x, centerY);}- (CGFloat)width { return self.frame.size.width;}- (void)setWidth:(CGFloat)width { CGRect frame = self.frame; frame.size.width = width; self.frame = frame;}- (CGFloat)height { return self.frame.size.height;}- (void)setHeight:(CGFloat)height { CGRect frame = self.frame; frame.size.height = height; self.frame = frame;}- (CGFloat)screenX { CGFloat x = 0.0f; for (UIView* view = self; view; view = view.superview) { x += view.left; } return x;}- (CGFloat)screenY { CGFloat y = 0.0f; for (UIView* view = self; view; view = view.superview) { y += view.top; } return y;}- (CGFloat)screenViewX { CGFloat x = 0.0f; for (UIView* view = self; view; view = view.superview) { x += view.left; if ([view isKindOfClass:[UIScrollView class]]) { UIScrollView* scrollView = (UIScrollView*)view; x -= scrollView.contentOffset.x; } } return x;}- (CGFloat)screenViewY { CGFloat y = 0; for (UIView* view = self; view; view = view.superview) { y += view.top; if ([view isKindOfClass:[UIScrollView class]]) { UIScrollView* scrollView = (UIScrollView*)view; y -= scrollView.contentOffset.y; } } return y;}- (CGRect)screenFrame { return CGRectMake(self.screenViewX, self.screenViewY, self.width, self.height);}- (CGPoint)origin { return self.frame.origin;}- (void)setOrigin:(CGPoint)origin { CGRect frame = self.frame; frame.origin = origin; self.frame = frame;}- (CGSize)size { return self.frame.size;}- (void)setSize:(CGSize)size { CGRect frame = self.frame; frame.size = size; self.frame = frame;}- (CGFloat)orientationWidth { return UIInterfaceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation) ? self.height : self.width;}- (CGFloat)orientationHeight { return UIInterfaceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation) ? self.width : self.height;}- (CGPoint)offsetFromView:(UIView*)otherView { CGFloat x = 0.0f, y = 0.0f; for (UIView* view = self; view && view != otherView; view = view.superview) { x += view.left; y += view.top; } return CGPointMake(x, y);}
0 0
- UIView类的常用扩展<一>
- UIView的类扩展,扩展CGRect
- UIView的常用属性
- UIView的常用属性
- UIView的常用属性
- UIView的常用属性
- UIView类的UIViewAnimationWithBlocks扩展 和 使用core animation
- UIView进阶-常用控件(一):UIControl
- IOS常用的扩展类
- UIView扩展--方便控件的布局
- swift中UIView的扩展使用
- ios UIView的常用属性
- UIView的一些常用属性
- UIView的最常用知识
- 152,UIView的常用属性
- 【OBJC类扩展之尺寸】UIView+Size
- 【OBJC类扩展之尺寸】UIView+Size
- 类的扩展(一):继承
- 花生壳穿透、nat123穿透、金万维穿透、PP透,它们都是怎样穿透内网的
- JSP元素归纳总结
- Django 的分页插件 django-pagination 使用
- c语言将字符串写入文件
- Hadoop下的Hbase的region服务器
- UIView类的常用扩展<一>
- 写一个高效的swap函数
- 分享Win7 下 IE WebDriver 因保护模式无法启动的解决
- 十款常见的开源数据库学习资料大汇总
- ECSHOP与jquery冲突的完美解决方案
- 哈希表的【构造方法】【冲突处理方法】及【哈希拉链法的简单代码实现】
- 关于javabean的学习
- 关键词展现量低时怎么办?
- html5 canvas 扫雷游戏