新建基于UIView扩展类 UIView+wkjFrame,此类是为了方便获取一些基于UIView类UI控件的坐标和位置的简化,直接引用即可

UIView+wkjFrame.h

- (CGPoint)origin;
- (void)setOrigin:(CGPoint) point; - (CGSize)size;
- (void)setSize:(CGSize) size; - (CGFloat)x;
- (void)setX:(CGFloat)x; - (CGFloat)y;
- (void)setY:(CGFloat)y; - (CGFloat)height;
- (void)setHeight:(CGFloat)height; - (CGFloat)width;
- (void)setWidth:(CGFloat)width; - (CGFloat)tail;
- (void)setTail:(CGFloat)tail; - (CGFloat)bottom;
- (void)setBottom:(CGFloat)bottom; - (CGFloat)right;
- (void)setRight:(CGFloat)right;

UIView+wkjFrame.m

#import "UIView+wkjFrame.h"

@implementation UIView (wkjFrame)
- (CGPoint) origin {
return self.frame.origin;
} - (void) setOrigin:(CGPoint) point {
self.frame = CGRectMake(point.x, point.y, self.frame.size.width, self.frame.size.height);
} - (CGSize) size {
return self.frame.size;
} - (void) setSize:(CGSize) size {
self.frame = CGRectMake(self.x, self.y, size.width, size.height);
} - (CGFloat) x {
return self.frame.origin.x;
} - (void) setX:(CGFloat)x {
self.frame = CGRectMake(x, self.y, self.width, self.height);
} - (CGFloat) y {
return self.frame.origin.y;
}
- (void) setY:(CGFloat)y {
self.frame = CGRectMake(self.x, y, self.width, self.height);
} - (CGFloat) height {
return self.frame.size.height;
}
- (void)setHeight:(CGFloat)height {
self.frame = CGRectMake(self.x, self.y, self.width, height);
} - (CGFloat)width {
return self.frame.size.width;
}
- (void)setWidth:(CGFloat)width {
self.frame = CGRectMake(self.x, self.y, width, self.height);
} - (CGFloat)tail {
return self.y + self.height;
} - (void)setTail:(CGFloat)tail {
self.frame = CGRectMake(self.x, tail - self.height, self.width, self.height);
} - (CGFloat)bottom {
return self.tail;
} - (void)setBottom:(CGFloat)bottom {
[self setTail:bottom];
} - (CGFloat)right {
return self.x + self.width;
} - (void)setRight:(CGFloat)right {
self.frame = CGRectMake(right - self.width, self.y, self.width, self.height);
}
@end

iOS-UIView一些坐标和位置方法封装的更多相关文章

  1. iOS UIView常用的一些方法setNeedsDisplay和setNeedsLayout 区别

    1.UIView的setNeedsDisplay和setNeedsLayout方法 首先两个方法都是异步执行的.而setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到  UI ...

  2. iOS - UIView

    前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIView : UIResponder <NSCoding, UIAppearance, UIAppeara ...

  3. iOS开发之微信聊天工具栏的封装

    之前山寨了一个新浪微博(iOS开发之山寨版新浪微博小结),这几天就山寨个微信吧.之前已经把微信的视图结构简单的拖了一下(IOS开发之微信山寨版),今天就开始给微信加上具体的实现功能,那么就先从微信的聊 ...

  4. iOS开发 GET、POST请求方法(NSURLSession篇)

    NSURLConnection,在iOS9被宣布弃用,本文不使用NSURLConnection进行网络编程,有兴趣的童鞋可以参考: [iOS开发 GET.POST请求方法(NSURLConnectio ...

  5. 谈谈UIView的几个layout方法

    谈谈UIView的几个layout方法-layoutSubviews.layoutIfNeeded.setNeedsLayout...   最近在学习swift做动画,用到constraint的动画, ...

  6. C#的百度地图开发(三)依据坐标获取位置、商圈及周边信息

    原文:C#的百度地图开发(三)依据坐标获取位置.商圈及周边信息 我们得到了百度坐标,现在依据这一坐标来获取相应的信息.下面是相应的代码 public class BaiduMap { /// < ...

  7. iOS开发 GET、POST请求方法:NSURLSession篇

    NSURLConnection,在iOS 9被宣布弃用,本文不使用NSURLConnection进行网络编程,有兴趣的童鞋可以参考: iOS开发 GET.POST请求方法(NSURLConnectio ...

  8. Java&Selenium 模拟鼠标方法封装

    Java&Selenium 模拟鼠标方法封装 package util; import org.openqa.selenium.By; import org.openqa.selenium.W ...

  9. UIView的几个layout方法

    iOS layout的相关方法: 1,layoutSubviews 2,layoutIfNeeded 3,setNeedsLayout 4,setNeedsDisplay 5,drawRect 6,s ...

随机推荐

  1. jquery 插入节点的方法

    方法 描述 示例 append() 向每个匹配的元素内部追加内容 HTML代码: <p>我想说:</p> jQuery代码: $("p").append(& ...

  2. c++中如何定义编译期间常量,即这个常量可以用于定义数组下标

    在c++中,类里面的成员变量不仅仅可以被const修饰,还可以被static const修饰,此时一个内建类型(如int ,char ,long等)的static const 可以看做是一个编译期间的 ...

  3. Spark实践 -- 性能优化基础

    性能调优相关的原理讲解.经验总结: 掌握一整套Spark企业级性能调优解决方案:而不只是简单的一些性能调优技巧. 针对写好的spark作业,实施一整套数据倾斜解决方案:实际经验中积累的数据倾斜现象的表 ...

  4. SQL之经典SQL语句大全

    经典SQL语句大全 一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql serv ...

  5. IntelliJ IDEA 2017版 spring-boot加载jsp配置详解(详细图文实例)

    一.创建项目 (File--->New-->Project) 2.项目配置内容 3.选择配置项目的Group包名,Artifact项目名称 4.选择项目类型为web类型 5.创建成功,点击 ...

  6. IntelliJ IDEA 2017版 spring-boot 实现jpa基本部署,通过实体类自动建立数据库

    一.添加Spring Boot JPA-Hibernate步骤 1.在pom.xml添加mysql,spring-data-jpa依赖      2.在application.properties文件 ...

  7. Cache Algorithms

    1. 平均内存引用时间 T = average memory reference time m = miss ratio = 1 - (hit ratio) Tm = time to make a m ...

  8. OpenGL ES 光照模型之——环境光照(RenderMonkey测试)

    概述及目录(版权所有,请勿转载 www.cnblogs.com/feng-sc/) 本文总结如何在RenderMonkey下做简单的OpenGL ES环境光光照模型测试. 主要包括如下内容: 1.使用 ...

  9. Hdu1361&&Poj1068 Parencodings 2017-01-18 17:17 45人阅读 评论(0) 收藏

    Parencodings Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total ...

  10. U盘单个文件最大4G限制问题

    1.不同文件系统的最大分区以及单个文件最大限制 FAT32单个文件最大不能超过4G,超过4G就不能读取了. NTFS(Windows):支持最大分区2TB,最大文件2TB FAT16(Windows) ...