UIView frame信息Category

在布局UI的时候,会有大量设置UIView frame的地方,虽然系统提供了一些方法,但是还不够直接,课余之际略作总结,共享给大家,需要的直接拿走,但需要注明出处哦,不谢~~

//
//  UIView+Extension.h
//
//  Created by Hunk on 15/4/13.
//  Copyright (c) 2015年 Hunk. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface UIView (Extension)

// View's frame.origin.x
@property (nonatomic, assign) CGFloat   x;
// View's frame.origin.y
@property (nonatomic, assign) CGFloat   y;
// View's frame.size.width
@property (nonatomic, assign) CGFloat   width;
// View's frame.size.height
@property (nonatomic, assign) CGFloat   height;
// View's frame.origin
@property (nonatomic, assign) CGPoint   origin;
// View's frame.size
@property (nonatomic, assign) CGSize    size;
// View's center.x
@property (nonatomic, assign) CGFloat   centerX;
// View's center.y
@property (nonatomic, assign) CGFloat   centerY;

@end
//
//  UIView+Extension.m
//
//  Created by Hunk on 15/4/13.
//  Copyright (c) 2015年 Hunk. All rights reserved.
//

#import "UIView+Extension.h"

@implementation UIView (Extension)

- (void)setX:(CGFloat)x
{
    CGRect rect     = self.frame;
    rect.origin.x   = x;
    self.frame      = rect;
}

- (CGFloat)x
{
    return CGRectGetMinX(self.frame);
}

- (void)setY:(CGFloat)y
{
    CGRect rect     = self.frame;
    rect.origin.y   = y;
    self.frame      = rect;
}

- (CGFloat)y
{
    return CGRectGetMinY(self.frame);
}

- (void)setWidth:(CGFloat)width
{
    CGRect rect     = self.frame;
    rect.size.width = width;
    self.frame      = rect;
}

- (CGFloat)width
{
    return CGRectGetWidth(self.frame);
}

- (void)setHeight:(CGFloat)height
{
    CGRect rect         = self.frame;
    rect.size.height    = height;
    self.frame          = rect;
}

- (CGFloat)height
{
    return CGRectGetHeight(self.frame);
}

- (void)setOrigin:(CGPoint)origin
{
    CGRect rect = self.frame;
    rect.origin = origin;
    self.frame  = rect;
}

- (CGPoint)origin
{
    return self.frame.origin;
}

- (void)setSize:(CGSize)size
{
    CGRect rect = self.frame;
    rect.size   = size;
    self.frame  = rect;
}

- (CGSize)size
{
    return self.frame.size;
}

- (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;
}

@end
时间: 2024-10-31 08:10:29

UIView frame信息Category的相关文章

category中添加属性的简单方式

一.概念扩充: 1.如我们所知,使用category是用来对现有类进行功能扩展,或者将类分成多模块的一种方式.由声明和实现两部分组成.可以单独写成Objiective-C File类型文件(包含.h和.m). 2.category可以用来给现有类添加新的方法. 3.category不可以给类添加成员,会直接报错(编译不过). 4.category可以用@property来添加属性,此种方式会自动生成对应属性的set和get方法的声明,但是没有set和get方法的实现,也不会自动生成带有“_”的属

UIApplication、UIView、UIWindow、UIScreen、UIViewController、UINavigationController 介绍

转载请声明出处:http://blog.csdn.net/jinnchang/article/details/44954803 1.前言 我们先来看一下这几个概念的类继承关系图: iOS 中,所有显示在界面上的对象都是从 UIResponder 直接或间接继承的. 2.应用程序(UIApplication) 一个 UIApplication 对象就代表一个应用程序.一个 iOS 程序启动后创建的第一个对象就是 UIApplication 对象(只有一个),而且是单例的.如有需要,可以通过如下代码

iOS设置frame的简单方法

在iOS中view的frame属性使用地太频繁了,尤其是调UI的时候.我们知道,正常情况下我们无法对frame的某个属性(x,y,width,height等)进行单独修改,比如: someView.frame.x = 100: 这种方式是不允许的,但实际上我们更经常遇到的是frame的大部分元素值保持不变,只改变其中的一部分.相信这个烦恼困扰了不少人,于是我们不得不用以下两种方法去达到目的: 法1: CGRect frame = someView.frame; frame.x =100; fra

[Xcode10 实际操作]二、视图与手势-(1)UIView视图的基本使用

本文将演示在视图控制器的根视图里添加两个视图对象. 1 import UIKit 2 3 class ViewController: UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 // Do any additional setup after loading the view, typically from a nib. 8 //初始化一个举行区域对象, 9 //它在屏幕上定义了一个矩形

iOS 中 UIView 和 CALayer 的关系

UIView 有一个名叫 layer ,类型为 CALayer 的对象属性,它们的行为很相似,主要区别在于:CALayer 继承自 NSObject ,不能够响应事件. 这是因为 UIView 除了负责响应事件 ( 继承自 UIReponder ) 外,它还是一个对 CALayer 的底层封装.可以说,它们的相似行为都依赖于 CALayer 的实现,UIView 只不过是封装了它的高级接口而已. 那 CALayer 是什么呢? CALayer(图层) 文档对它定义是:管理基于图像内容的对象,允许

UIView动画

1.淡入效果 // MARK: - UIView动画-淡入 @IBAction func simpleAnimationFadeIn() { UIView.beginAnimations(nil, context: nil) UIView.setAnimationDuration(2.0)//设置动画时间 testImageView.alpha = 0.0 UIView.commitAnimations() // //通过闭包实现 UIView淡入 // UIView.animateWithDu

UIView视图

UIView视图的基本使用 打开视图控制器代码文件ViewController.swift 编写代码: override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. //添加两个视图 //CGRect结构,在屏幕上定义了一个矩形,它包含了对象的原点位置,和大小尺寸 let rect1 = CGRectMake(30

MP3 信息读取

运行环境:Window7 64bit,.NetFramework4.61,C# 7.0: 编者:乌龙哈里 2017-03-13 参考: MP3-wikipedia ID3v1 MPEG Audio Layer I/II/III frame header ID3 tag version 2.3.0 MP3文件格式解析 章节: Mp3 文件结构概述 ID3V1 标记 ID3V2 标记 Mp3 数据头 正文: 一.Mp3文件概述 最近买了个车载mp3播放器,需要下载mp3文件.下载了一堆后发现,很多网

iOS开发——动画编程Swift篇&amp;(二)UIView转场动画

UIView转场动画 1 // MARK: - UIView动画-过度动画 2 var redView:UIView? 3 var blueView:UIView? 4 5 // enum UIViewAnimationTransition : Int { 6 // 7 // case None 8 // case FlipFromLeft 9 // case FlipFromRight 10 // case CurlUp 11 // case CurlDown 12 // } 13 14 //