很多时候,如果我们想给我们的控件赋值,例如给控件的长度、宽度等赋值,很麻烦

  需要先获取到当前frame,再整个临时frame来保存,修改赋值后再还给当前的frame,这都是重复性高的苦力活,解决方法就是写一个类别,这些步骤都挂起来,大家一起用。

  话不多说看类别:

头文件:

  

  1. //
  2. // UIView+Extension.h
  3. // XibaTest
  4. //
  5. // Created by bos on 15-6-11.
  6. // Copyright (c) 2015年 axiba. All rights reserved.
  7. //
  8.  
  9. #import <UIKit/UIKit.h>
  10.  
  11. @interface UIView (Extension)
  12.  
  13. @property (nonatomic,assign) CGFloat x;
  14. @property (nonatomic,assign) CGFloat y;
  15. @property (nonatomic,assign) CGFloat centerX;
  16. @property (nonatomic,assign) CGFloat centerY;
  17. @property (nonatomic,assign) CGFloat width;
  18. @property (nonatomic ,assign) CGFloat height;
  19. @property (nonatomic, assign) CGSize size;
  20. @property (nonatomic,assign) CGPoint orign;
  21.  
  22. @end

代码文件:

  1. //
  2. // UIView+Extension.m
  3. // XibaTest
  4. //
  5. // Created by bos on 15-6-11.
  6. // Copyright (c) 2015年 axiba. All rights reserved.
  7. //
  8.  
  9. #import "UIView+Extension.h"
  10.  
  11. @implementation UIView (Extension)
  12.  
  13. -(void)setX:(CGFloat)x
  14. {
  15. CGRect frame = self.frame;
  16. frame.origin.x = x;
  17. self.frame = frame;
  18. }
  19. -(CGFloat)x
  20. {
  21. return self.frame.origin.x;
  22. }
  23.  
  24. -(void)setY:(CGFloat)y
  25. {
  26. CGRect frame = self.frame;
  27. frame.origin.y = y;
  28.  
  29. self.frame = frame;
  30. }
  31. -(CGFloat)y
  32. {
  33. return self.frame.origin.y;
  34. }
  35.  
  36. -(void)setCenterX:(CGFloat)centerX
  37. {
  38. CGPoint center = self.center;
  39. center.x = centerX;
  40. self.center = center;
  41. }
  42. -(CGFloat)centerX
  43. {
  44. return self.center.x;
  45. }
  46.  
  47. -(void)setCenterY:(CGFloat)centerY
  48. {
  49. CGPoint center = self.center;
  50. center.y = centerY;
  51. self.center = center;
  52. }
  53. -(CGFloat)centerY
  54. {
  55. return self.center.y;
  56. }
  57.  
  58. -(void)setWidth:(CGFloat)width
  59. {
  60. CGRect frame = self.frame;
  61. frame.size.width = width;
  62.  
  63. self.frame = frame;
  64. }
  65. -(CGFloat)width
  66. {
  67. return self.frame.size.width;
  68. }
  69.  
  70. -(void)setHeight:(CGFloat)height
  71. {
  72. CGRect frame = self.frame;
  73. frame.size.height = height;
  74.  
  75. self.frame = frame;
  76. }
  77. -(CGFloat)height
  78. {
  79. return self.frame.size.height;
  80. }
  81.  
  82. -(void)setSize:(CGSize)size
  83. {
  84. CGRect frame = self.frame;
  85. frame.size =size;
  86. self.frame = frame;
  87. }
  88. -(CGSize)size
  89. {
  90. return self.frame.size;
  91. }
  92.  
  93. -(void)setOrign:(CGPoint)orign
  94. {
  95. CGRect frame = self.frame;
  96. frame.origin = orign;
  97.  
  98. self.frame = frame;
  99. }
  100. -(CGPoint)orign
  101. {
  102. return self.frame.origin;
  103. }
  104.  
  105. @end

  写完类别,记得引入,可以在个别控制器中单独引入,也可以在pch文件中  #import "UIView+Extension.h" ,大家一起用。

构建一个基于UIView的类别的更多相关文章

  1. 使用 XMPP 构建一个基于 web 的通知工具——转

    Inserting of file(使用 XMPP 构建一个基于 web 的通知工具.docx) failed. Please try again. http://www.ibm.com/develo ...

  2. 利用Dockerfile构建一个基于CentOS 7镜像

    利用Dockerfile构建一个基于CentOS 7,包括java 8, tomcat 7,php ,mysql+mycat的镜像. Dockerfile内容如下: FROM centosMAINTA ...

  3. 构建一个基于 Spring 的 RESTful Web Service

    本文详细介绍了基于Spring创建一个“hello world” RESTful web service工程的步骤. 目标 构建一个service,接收如下HTTP GET请求: http://loc ...

  4. 构建一个基于事件分发驱动的EventLoop线程模型

    在之前的文章中我们详细介绍过Netty中的NioEventLoop,NioEventLoop从本质上讲是一个事件循环执行器,每个NioEventLoop都会绑定一个对应的线程通过一个for(;;)循环 ...

  5. 开源低代码平台开发实践二:从 0 构建一个基于 ER 图的低代码后端

    前后端分离了! 第一次知道这个事情的时候,内心是困惑的. 前端都出去搞 SPA,SEO 们同意吗? 后来,SSR 来了. 他说:"SEO 们同意了!" 任何人的反对,都没用了,时代 ...

  6. Spring MVC第一课:用IDEA构建一个基于Spring MVC, Hibernate, My SQL的Maven项目

    作为一个Spring MVC新手最基本的功夫就是学会如何使用开发工具创建一个完整的Spring MVC项目,本文站在一个新手的角度讲述如何一步一步创建一个基于Spring MVC, Hibernate ...

  7. 利用Dockerfile构建一个基于centos 7,包括java 8, tomcat 7,php ,mysql+mycat的镜像

    Dockerfile内容如下: FROM centos MAINTAINER Victor ivictor@foxmail.com WORKDIR /root RUN rm -f /etc/yum.r ...

  8. 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)

    通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...

  9. 一个基于mysql构建的队列表

    通常大家都会使用redis作为应用的任务队列表,redis的List结构,在一段进行任务的插入,在另一端进行任务的提取. 任务的插入 $redis->lPush("key:task:l ...

随机推荐

  1. [Unity3D]关于NaN(Not a Number)的问题

    在游戏运行时,代码若写得不安全很容易出现NAN的异常.一旦NAN出现整个游戏不崩溃也坏死掉了,游戏上了则是要被直接打回来的节奏,更是一个开发及测试人员每人都要扣3000块的大BUG.   一般表现为: ...

  2. Lua常用时间函数

    常用时间函数 print(os.time()) --当前系统时间值 print(os.date( print(os.date("*t"), os.time()) --当前系统时间表 ...

  3. 如何让form表单在enter键入时不提交

    今天在做我的一个小玩意 在线聊天工具的时候 form表单只有一个text和一个button每当我键入enter的时候就刷新.很是郁闷,直接在form上onsumbit=false.才行. 下面是我查询 ...

  4. Vim终极指南:所思即所得

    https://blog.csdn.net/dc_726/article/details/78981756

  5. 泛泰A870K去掉相机快门声音的方法

    首先ROOT手机,挂载读写,/system/media/audio/ui里面哈,把camera-click.ogg改成camera-click.ogg.bak就可以了 转载自:http://bbs.9 ...

  6. SpringMVC------报错:java.lang.ClassNotFoundException: org.springframework.web.filter.CharacterEncodingFilter

    详细信息: java.lang.ClassNotFoundException: org.springframework.web.filter.CharacterEncodingFilter 严重: E ...

  7. SpringBoot------集成PageHelper分页功能

    添加MyBatis的代码,地址 https://www.cnblogs.com/tianhengblogs/p/9537665.html 修改以下部分: 1.添加MyBatisConfig packa ...

  8. Linux下tomcat无法启动

    场景:干净的tomcat,刚解压 1 通过./startup.sh,提示启动成功,但查看没有日志 2 通过netstat -tln查看端口,发现找不到8080 3 通过./catalina.sh ru ...

  9. CentOS7图形界面启动报错unable to connect to X server

    以前还可以正常启动图形界面,这次启动失败,报错unable to connect to X server 使用的是oracle用户,因为我是在oracle用户下创建的oracle数据库等 解决办法: ...

  10. PostgreSQL恢复误删数据

    在Oracle中:删除表或者误删表记录:有个闪回特性,不需要停机操作,可以完美找回记录.当然也有一些其他的恢复工具:例如odu工具,gdul工具.都可以找回数据.而PostgreSQL目前没有闪回特性 ...