//
// FrameAccessor.h
// FrameAccessor
//
// Created by Alex Denisov on 18.03.12.
// Copyright (c) 2013 okolodev.org. All rights reserved.
// #if (TARGET_IPHONE_SIMULATOR || TARGET_OS_IPHONE)
#import <UIKit/UIKit.h>
#define View UIView
#else
#import <Foundation/Foundation.h>
#define View NSView
#endif @interface UIView (FrameAccessor) - (CGPoint)origin;
- (void)setOrigin:(CGPoint)newOrigin;
- (CGSize)size;
- (void)setSize:(CGSize)newSize; - (CGFloat)x;
- (void)setX:(CGFloat)newX;
- (CGFloat)y;
- (void)setY:(CGFloat)newY; - (CGFloat)height;
- (void)setHeight:(CGFloat)newHeight;
- (CGFloat)width;
- (void)setWidth:(CGFloat)newWidth; - (CGFloat)bottom;
- (CGFloat)right; @end
//  FrameAccessor.m
// FrameAccessor
//
// Created by Alex Denisov on 18.03.12.
// Copyright (c) 2013 okolodev.org. All rights reserved.
// #import "FrameAccessor.h" @implementation UIView (FrameAccessor) - (CGPoint)origin {
return self.frame.origin;
} - (void)setOrigin:(CGPoint)newOrigin {
CGRect newFrame = self.frame;
newFrame.origin = newOrigin;
self.frame = newFrame;
} - (CGSize)size {
return self.frame.size;
} - (void)setSize:(CGSize)newSize {
CGRect newFrame = self.frame;
newFrame.size = newSize;
self.frame = newFrame;
} - (CGFloat)x {
return self.frame.origin.x;
} - (void)setX:(CGFloat)newX {
CGRect newFrame = self.frame;
newFrame.origin.x = newX;
self.frame = newFrame;
} - (CGFloat)y {
return self.frame.origin.y;
} - (void)setY:(CGFloat)newY {
CGRect newFrame = self.frame;
newFrame.origin.y = newY;
self.frame = newFrame;
} - (CGFloat)height {
return self.frame.size.height;
} - (void)setHeight:(CGFloat)newHeight {
CGRect newFrame = self.frame;
newFrame.size.height = newHeight;
self.frame = newFrame;
} - (CGFloat)width {
return self.frame.size.width;
} - (void)setWidth:(CGFloat)newWidth {
CGRect newFrame = self.frame;
newFrame.size.width = newWidth;
self.frame = newFrame;
} - (CGFloat)bottom {
return self.frame.origin.y + self.frame.size.height;
} - (CGFloat)right {
return self.frame.origin.x + self.frame.size.width;
} @end

一个实用的UIView的类别的更多相关文章

  1. “makefile”写法详解,一步一步写一个实用的makefile,详解 sed 's,$∗\.o[ :]*,\1.o $@ : ,g' < $@.

    目的:编写一个实用的makefile,能自动编译当前目录下所有.c/.cpp源文件,支持二者混合编译.并且当某个.c/.cpp..h或依赖的源文件被修改后,仅重编涉及到的源文件,未涉及的不编译. 二要 ...

  2. "一个实用的却被忽略的命名空间:Microsoft.VisualBasic":

        当你看到这个命名空间的时候,别因为是vb的东西就匆忙关掉网页,那将会是您的损失,此命名空间中的资源最初目的是为了简化vb.net开发而创建的,所以microsoft.visualbasic并不 ...

  3. 构建一个基于UIView的类别

    很多时候,如果我们想给我们的控件赋值,例如给控件的长度.宽度等赋值,很麻烦 需要先获取到当前frame,再整个临时frame来保存,修改赋值后再还给当前的frame,这都是重复性高的苦力活,解决方法就 ...

  4. 【翻译】Sencha Touch 2入门:创建一个实用的天气应用程序之三

    原文:Getting Started with Sencha Touch 2: Build a Weather Utility App (Part 3) 作者:Lee BoonstraLee is a ...

  5. asp.net core C#设计一个实用的线程池

    菜菜呀,我最近研究技术呢,发现线上一个任务程序线程数有点多呀 CEO,CTO,CFO于一身的CXO x总,你学编程呢? 菜菜 作为公司总负责人,我以后还要管理技术部门呢,怎么能不会技术呢 CEO,CT ...

  6. 一个实用批处理指令制作过程分享:Perforce更新完后打开VisualStudio再编译

    需求来源 笔者从事Unreal游戏客户端工作,使用VisualStudio开发,然后经常干一个事:就是使用Perforce(或svn)拉取最新代码,(一些时间后)拉取完之后然后打开 项目.sln,即V ...

  7. 推荐一个实用的css工具

    后台程序员整天在和数据打交道,天天的活就是抱着mysql抠数据,如果让他去写网站的样式,就让人感觉力不从心,所以推荐一个twitter的团队开发的东西,几乎囊括了网站所需的样式,http://www. ...

  8. [原创作品]一个实用的js倒计时器 postby:zhutty.cnblogs.com

    今天做了一个手机短信发送倒计时,额,就是每隔多长时间可以重新发送的功能.贡献出来给园有吐槽点评. //倒计时,time:时长(秒),scb:每秒回调,cb:计时完成回调 var timing = fu ...

  9. JavaScript封装一个实用的select控件

    最近一直把精力放在项目上面,导致忽略的一些底层的东西.以前就一直觉得原有的select控件很丑,正好周末有时间,试着做了一个简单封装,实现了它的基本功能.我总结了一下,大概分为三个部分: 1.对显示样 ...

随机推荐

  1. Bat命令学习 (转载)

    基础部分:====================================================================== 一.基础语法: 1.批处理文件是一个“.bat” ...

  2. tyvj 1432 楼兰图腾

    树状数组 本题数据有误 对于每一个点用权值树状数组维护在这个点之后之前的比他大和比他小的数 #include <iostream> #include <cstdio> #inc ...

  3. raspberry pi系统安装

    1.格式化SD卡,用SDFormatter 2.解压下载的操作系统 3.复制操作系统到SD卡(要放在根目录,把最外面的文件夹路径去掉) 4.把SD卡插入raspberry pi,接上电源 5.在启动界 ...

  4. JavaSE的包装类,自动装箱和自动拆箱 ,字符窜转换,toString(),equals(), hashCode()的区别

    一.基本数据类型和包装类 包装类均位于Java.lang包,包装类和基本数据类型的对应关系如下表所示: Primitive-Type   Wrapper-Class        byte       ...

  5. 设计模式之建造者(Builder)模式

    设计模式之建造者(Builder)模式 存在一些情况,比如,一些对象会有一些重要的属性,在这些属性没有恰当的值之前,对象不能作为一个完整的产品使用(如一个电子邮件最起码得有收件人地址):还有一些些情况 ...

  6. UltraEdit UE如何取消保存文件自动备份

    高级-配置-文件处理-备份,设置为不备份                          

  7. C语言之基本算法34—分解质因数(方法一)

    //矩阵基础 /* ================================================================== 题目:输入一个正整数.将其分解为质因式,如:6 ...

  8. 【分享】利用Apache的Htaccess Files命令限制訪问文件类型,Files正则

    假设你在你的模板目录中有非常多PSD HTML模板,那么用接下来这个htaccess文件能够保护限制訪问: 文件D:\WebSite\ZBPHP.COM\www\Tpl\.htaccess 所有源代码 ...

  9. Computer form factor

    http://en.wikipedia.org/wiki/Motherboard_form_factor Computer form factor From Wikipedia, the free e ...

  10. 通过/proc/cpuinfo判断CPU数量、Multicores、Multithreading、Hyper-threading

    http://blog.sina.com.cn/s/blog_4a6151550100iowl.html 判断依据:1.具有相同core id的cpu是同一个core的超线程.2.具有相同physic ...