为了便于日常开发效率,因此创建了一些小的工具类便于使用.

具体 code 如下:

声明:

  1. #import <UIKit/UIKit.h>
  2.  
  3. @interface UIView (Frame)
  4.  
  5. @property (nonatomic, assign) CGFloat x;
  6. @property (nonatomic, assign) CGFloat y;
  7. @property (nonatomic, assign) CGFloat centerX;
  8. @property (nonatomic, assign) CGFloat centerY;
  9. @property (nonatomic, assign) CGFloat width;
  10. @property (nonatomic, assign) CGFloat height;
  11. @property (nonatomic, assign) CGSize size;
  12. @property (nonatomic, assign) CGPoint origin;
  13.  
  14. @end

实现:

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

  

以上便是此次分享的内容,期待大神多多指点补充,使其更加强壮!

工具类(设置控件 frame) - iOS的更多相关文章

  1. 我的QT5学习之路(三)——模板库、工具类和控件(下)

    一.前言 作为第三篇的最后一部分,我们来看一下Qt的控件,谈到控件,就会让人想到界面的美观性和易操作性,进而想到开发的便捷性.作为windows界面开发的MFC曾经是盛行了多少年,但是其弊端也随着其他 ...

  2. 工具类(为控件设置圆角) - iOS

    为了便于日常开发效率,因此创建了一些小的工具类便于使用.具体 code 如下:声明: /* 为控件添加边框样式_工具类 */ #import <UIKit/UIKit.h> typedef ...

  3. 工具类(为控件设置色值) - iOS

    为了便于日常开发效率,因此创建了一些小的工具类便于使用.具体 code 如下:声明: /* 为控件设置色值 */ #import <UIKit/UIKit.h> @interface UI ...

  4. Chapter2:Qt5模板库,工具类及控件

    2.1 字符串类 QString类保存16位Unicode值,提供了丰富的操作,查询和转换等函数.  (1):QString提供了一个二元的"+"操作符用于组合两个字符串  (2) ...

  5. IOS 制作动画代码和 设置控件透明度

    方式1: //animateWithDuration用1秒钟的时间,执行代码 [UIView animateWithDuration:1.0 animations:^{ //存放需要执行的动画代码 s ...

  6. <iOS小技巧>UIview指定设置控件圆角

      一.用法:   众所周知,设置控件的圆角使用layer.cornerRadius属性即可,但是这样设置成的结果是4个边角都是圆角类型.   利用班赛尔曲线画角:   //利用班赛尔曲线画角 UIB ...

  7. WPF:DataTemplateSelector设置控件不同的样式

    原文 WPF:DataTemplateSelector设置控件不同的样式 最近想实现这么个东西,一个ListBox, 里面的ListBoxItem可能是文本框.下拉框.日期选择控件等等. 很自然的想到 ...

  8. VB.NET设置控件和窗体的显示级别

    前言:在用VB.NET开发射频检测系统ADS时,当激活已存在的目标MDI子窗体时,被其他子窗体遮住了,导致目标MDI子窗体不能显示. 这个问题怎么解决呢?网上看到一篇帖子VB.NET设置控件和窗体的显 ...

  9. Android线程中设置控件

    在Android中经常出现多线程中设置控件的值报错的情况,今天教大家封装一个简单的类避免这样的问题,同样也调用实现也非常的方便. 自定义类: /** * Created by wade on 2016 ...

随机推荐

  1. JavaScript 闭包初认识

    1.简单的例子 首先从一个经典错误谈起,页面上有若干个div, 我们想给它们绑定一个onclick方法,于是有了下面的代码 <ul id="divTest"> < ...

  2. 通过js控制层的动态隐藏

    <style type="text/css"> #dv1{ width:1000px; height:1000px; overflow:hidden; display: ...

  3. unity3D使用C#遍历场景内所有元素进行操作

    最近入门Unity3D,跟着教程做完了survival射击游戏,就想加一个功能,就是按一个按钮屏幕上的怪物都清空. 如图右下角所示. 我的方法是赋予所有怪物一个标签Tag,然后根据标签销毁Gameob ...

  4. 多线程篇七:通过Callable和Future获取线程池中单个务完成后的结果

    使用场景:如果需要拿到线程的结果,或者在线程完成后做其他操作,可以使用Callable 和 Futrue 1.定义一个线程池,向线程池中提交单个callable任务 ExecutorService t ...

  5. angular监听移动端键盘的弹起和收回

    页面的提交按钮采用的是固定定位在页面的底部,键盘弹出后,提交按钮紧挨着键盘的上方,输入框获得焦点后,键盘弹出,并且输入框回自动定位上方的空白处,此时由于键盘上方固定定位的提交按钮的原因有可能会遮挡住获 ...

  6. <Android 基础(十八)> XLIFF

    介绍 XLIFF ,XML Localization Interchange File Format,XML本地化数据交换格式. 实际使用 1.布局文件 activity_main.xml <? ...

  7. 04_Spring中使用Quartz

    [Spring中使用SimplerTrigger] [QuartzTask.java] package com.higgin.task; import java.text.SimpleDateForm ...

  8. 01_Quartz基础结构

    [各种任务调度的使用场景] 论坛每天凌晨统计论坛用户的积分排名. 论坛每半个小时生成精华文章. 每隔30分钟对锁定过期的用户解锁. 每月1号统计上个月各部门的业务数据. [Quartz 简介] Qua ...

  9. CSS3控制单行文本的溢出

    text-overflow用来设置是否使用一个省略标记(...)标示对象内文本的溢出.语法: 但是text-overflow只是用来说明文字溢出时用什么方式显示,要实现溢出时产生省略号的效果,还须定义 ...

  10. 网络基础-IP、端口等

    首先来理解一下几个概念.      白帽子:有能力破坏电脑安全但不具恶意目的的黑客.白帽子一般有清楚的定义.道德规范并常常试图同企业合作去改善发现的安全弱点.         正义技术员. 灰帽子:对 ...