让结构体类型frame的某个属性可以直接修改_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > 让结构体类型frame的某个属性可以直接修改

让结构体类型frame的某个属性可以直接修改

 2015/1/31 22:54:42  董铂然  程序员俱乐部  我要评论(0)
  • 摘要:本篇是是本人在博客园写的第一篇博客,前几天因为种种原因最终决定离开混了几年的csdn。希望在博客园有个新的开始Foundation框架里面的frame是大家最熟悉不过的一个属性了,但是修改起来比较麻烦,他是CGRect类型的CGRect是结构体结构体类型里面的某个属性如果想要修改是不允许单个修改的,必须像下面这样先取出,改一下再重新赋值回去,也就是大家常说的三部曲如果结构体类型的东西也可以直接修改那会有多爽?就像下面这样。其实只要自己给UIView写个分类就好了用这个分类来替代frame
  • 标签:

本篇是是本人在博客园写的第一篇博客,前几天因为种种原因最终决定离开混了几年的csdn。希望在博客园有个新的开始 

Foundation框架里面的frame是大家最熟悉不过的一个属性了,但是修改起来比较麻烦,他是CGRect类型的CGRect是结构体 结构体类型里面的某个属性如果想要修改是不允许单个修改的,必须像下面这样先取出,改一下再重新赋值回去,也就是大家常说的三部曲

 

如果结构体类型的东西也可以直接修改 那会有多爽?就像下面这样。

 

其实只要自己给UIView写个分类就好了 用这个分类来替代frame。

大概思想就是给用分类给UIView多增加几个属性x,y,height,width。这几个属性都分别实现get方法和set方法。这样以后frame就可以离开他了

 

分类UIView+Frame 声明

 1 //
 2 //  UIView+Frame.h
 3 //  SXDownLoader
 4 //
 5 //  Created by 董尚先 on 15/1/2.
 6 //  Copyright (c) 2015年 shangxianDante. All rights reserved.
 7 //
 8 
 9 #import <UIKit/UIKit.h>
10 
11 @interface UIView (Frame)
12 
13 // 自己模仿frame写出他的四个属性
14 @property (nonatomic, assign) CGFloat  x;
15 @property (nonatomic, assign) CGFloat  y;
16 @property (nonatomic, assign) CGFloat  width;
17 @property (nonatomic, assign) CGFloat  height;
18 
19 
20 @end

分类UIView+Frame 实现

#import "UIView+Frame.h"

@implementation UIView (Frame)

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

@end

 

之后在需要的地方Import一下

就可以把那些UI控件什么的frame轻松的单个修改了

 

上一篇: iOS里常见的几种信息加密方法简单总结 下一篇: 没有下一篇了!
  • 相关文章
发表评论
用户名: 匿名