构建一个基于UIView的类别
很多时候,如果我们想给我们的控件赋值,例如给控件的长度、宽度等赋值,很麻烦
需要先获取到当前frame,再整个临时frame来保存,修改赋值后再还给当前的frame,这都是重复性高的苦力活,解决方法就是写一个类别,这些步骤都挂起来,大家一起用。
话不多说看类别:
头文件:
- //
- // UIView+Extension.h
- // XibaTest
- //
- // Created by bos on 15-6-11.
- // Copyright (c) 2015年 axiba. All rights reserved.
- //
- #import <UIKit/UIKit.h>
- @interface UIView (Extension)
- @property (nonatomic,assign) CGFloat x;
- @property (nonatomic,assign) CGFloat y;
- @property (nonatomic,assign) CGFloat centerX;
- @property (nonatomic,assign) CGFloat centerY;
- @property (nonatomic,assign) CGFloat width;
- @property (nonatomic ,assign) CGFloat height;
- @property (nonatomic, assign) CGSize size;
- @property (nonatomic,assign) CGPoint orign;
- @end
代码文件:
- //
- // UIView+Extension.m
- // XibaTest
- //
- // Created by bos on 15-6-11.
- // Copyright (c) 2015年 axiba. All rights reserved.
- //
- #import "UIView+Extension.h"
- @implementation UIView (Extension)
- -(void)setX:(CGFloat)x
- {
- CGRect frame = self.frame;
- frame.origin.x = x;
- self.frame = frame;
- }
- -(CGFloat)x
- {
- return self.frame.origin.x;
- }
- -(void)setY:(CGFloat)y
- {
- CGRect frame = self.frame;
- frame.origin.y = y;
- self.frame = frame;
- }
- -(CGFloat)y
- {
- return self.frame.origin.y;
- }
- -(void)setCenterX:(CGFloat)centerX
- {
- CGPoint center = self.center;
- center.x = centerX;
- self.center = center;
- }
- -(CGFloat)centerX
- {
- return self.center.x;
- }
- -(void)setCenterY:(CGFloat)centerY
- {
- CGPoint center = self.center;
- center.y = centerY;
- self.center = center;
- }
- -(CGFloat)centerY
- {
- return self.center.y;
- }
- -(void)setWidth:(CGFloat)width
- {
- CGRect frame = self.frame;
- frame.size.width = width;
- self.frame = frame;
- }
- -(CGFloat)width
- {
- return self.frame.size.width;
- }
- -(void)setHeight:(CGFloat)height
- {
- CGRect frame = self.frame;
- frame.size.height = height;
- self.frame = frame;
- }
- -(CGFloat)height
- {
- return self.frame.size.height;
- }
- -(void)setSize:(CGSize)size
- {
- CGRect frame = self.frame;
- frame.size =size;
- self.frame = frame;
- }
- -(CGSize)size
- {
- return self.frame.size;
- }
- -(void)setOrign:(CGPoint)orign
- {
- CGRect frame = self.frame;
- frame.origin = orign;
- self.frame = frame;
- }
- -(CGPoint)orign
- {
- return self.frame.origin;
- }
- @end
写完类别,记得引入,可以在个别控制器中单独引入,也可以在pch文件中 #import "UIView+Extension.h" ,大家一起用。
构建一个基于UIView的类别的更多相关文章
- 使用 XMPP 构建一个基于 web 的通知工具——转
Inserting of file(使用 XMPP 构建一个基于 web 的通知工具.docx) failed. Please try again. http://www.ibm.com/develo ...
- 利用Dockerfile构建一个基于CentOS 7镜像
利用Dockerfile构建一个基于CentOS 7,包括java 8, tomcat 7,php ,mysql+mycat的镜像. Dockerfile内容如下: FROM centosMAINTA ...
- 构建一个基于 Spring 的 RESTful Web Service
本文详细介绍了基于Spring创建一个“hello world” RESTful web service工程的步骤. 目标 构建一个service,接收如下HTTP GET请求: http://loc ...
- 构建一个基于事件分发驱动的EventLoop线程模型
在之前的文章中我们详细介绍过Netty中的NioEventLoop,NioEventLoop从本质上讲是一个事件循环执行器,每个NioEventLoop都会绑定一个对应的线程通过一个for(;;)循环 ...
- 开源低代码平台开发实践二:从 0 构建一个基于 ER 图的低代码后端
前后端分离了! 第一次知道这个事情的时候,内心是困惑的. 前端都出去搞 SPA,SEO 们同意吗? 后来,SSR 来了. 他说:"SEO 们同意了!" 任何人的反对,都没用了,时代 ...
- Spring MVC第一课:用IDEA构建一个基于Spring MVC, Hibernate, My SQL的Maven项目
作为一个Spring MVC新手最基本的功夫就是学会如何使用开发工具创建一个完整的Spring MVC项目,本文站在一个新手的角度讲述如何一步一步创建一个基于Spring MVC, Hibernate ...
- 利用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 ...
- 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)
通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...
- 一个基于mysql构建的队列表
通常大家都会使用redis作为应用的任务队列表,redis的List结构,在一段进行任务的插入,在另一端进行任务的提取. 任务的插入 $redis->lPush("key:task:l ...
随机推荐
- jquery与php的HTML转义与反转义
1.jquery (1)Html转义 var tmp = '<a href="https://www.baidu.com/">连接</a>'; var tm ...
- geoserver 添加图层数据
1.添加shapefile文件 首先到http://www2.census.gov/geo/tiger/TIGER2011/CONCITY/上下载名称为tl_2011_47_concity的shape ...
- java程序员如何编写更好的单元测试的7个技巧
详解 cppunit进行单元测试 单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的.很明确的功能是否正确.通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函 ...
- SpringMVC -- 梗概--源码--贰--RestFul收参(了解) @PathVariable
1>定制方式: //如下两个路径都可以访问到如下方法,请求路径不同,则name61和pwd61匹配到的值不同 //http://localhost:8989/appname/ful/lime/1 ...
- iframe设置高度为100%
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- WopiServerTutorial
Program.cs using System; using System.Collections.Generic; using System.IO; using System.Linq; using ...
- AddParent
using UnityEngine; using UnityEditor; using System.Collections; public class AddParent : ScriptableO ...
- STL——迭代器与traits编程技法
一.迭代器 1. 迭代器设计思维——STL关键所在 在<Design Patterns>一书中对iterator模式定义如下:提供一种方法,使之能够依序巡访某个聚合物(容器)所含的各个元素 ...
- java上传并压缩图片(等比例压缩或者原尺寸压缩)
本文转载自http://www.voidcn.com/article/p-npjxrbxr-kd.html 先看效果: 原图:1.33M 处理后:27.4kb 关键代码; package codeGe ...
- JS插件---->SyntaxHighlighter的使用
SyntaxHighlighter是一款用于web页面的代码着色工具,可以用来着色多种语言.今天我们通过实例来学习一下它的用法.旧同桌不是老情人,但与你分享过的青春不比初恋少半分. SyntaxHig ...