构建一个基于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 ...
随机推荐
- 企业"信息化建设"价值
企业信息化现状分析 随 着企业信息化建设的快速发展,信息技术与信息系统对企业组织形态.治理结构.管理体制.运作流程和商业模式的影响日益深化,企业组织对信息技术和信息 系统的依赖性在日益加强,IT正成为 ...
- Java NIO原理 图文分析及代码实现
Java NIO原理图文分析及代码实现 前言: 最近在分析hadoop的RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过网络从远程计算机程序上请 ...
- iOS iTuns Connect官方配置教程
iTunes Connect 开发者指南 (iTunes Connect Developer Guide): https://developer.apple.com/library/ios/docum ...
- 使用HTML5监测网站性能
在这个信息爆炸的互联网时代,越来越多的人缺少了等待的耐心,网站性能对于一个网站来说越来越重要.以下为监控到的网站打开时间对跳出率的影响: 当网站打开时间在0-1秒时,跳出率为12% 当网站打开时间在1 ...
- linux下查看当前目录属于哪个分区?
下班之前写哈今天用的一个新命令. df -h /opt/test
- [Ubuntu] APT - Advanced Packaging Tool 简明指南
Advanced Packaging Tool,一般简称为apt,是Debian GNU/Linux distribution及其变体版本中与核心库一道处理软件的安装和卸载. Ubuntu是Debia ...
- Vim 的 Python 编辑器详细配置过程 (Based on Ubuntu 12.04 LTS)
为什么要用vim编辑py文件? 因为在Linux命令行中,缺少图形界面的IDE,vim是最佳的文本编辑器,而为了更好的编辑py文本,所以配置vim. 1. 安装完整版vim vi和vim的区别? 在L ...
- Elasticsearch 版本控制
悲观并发控制(Pessimistic concurrency control) 这在关系型数据库中被广泛的使用,假设冲突的更改经常发生,为了解决冲突我们把访问区块化.典型的例子是在读一行数据前锁定这行 ...
- 当进行make命令学习是出现error trying to exec 'cc1': execvp: No such file or directory
进行编译的时候总是会出现这种状况 error trying to exec 'cc1': execvp: No such file or directory 自己把程序改了又改,改的很简单之后还是出现 ...
- React Native(十一)——按钮重复点击事件的处理
最初开始做后台管理系统的时候,就曾遇到过这样一种场景:"快速点击确认按钮,就会对此触发确认事件,导致多次请求数据库":于是最终我们得当的通过处理那个确认button,解决了上述问题 ...