IOS开发之控件frame/bounds/center尺寸改变小技巧-简单给UIView新增分类(github链接)

大家是否还记得对控件的frame/bounds/center进行属性更改时的三部曲?

1>将结构体取出

2>改变取出后的结构体对应的数据

3>将修改后的结构体赋值给控件

CGRect frame = self.view.frame;
    // your code...
    frame.origin.x = frameX;
    // your code...
    self.view.frame = frame;

这在实际工作中需要更改相应属性的时候是很不方便的,所以考虑到直接在UIView的分类中添加相应的属性通过重写它们的setter与getter方法达到快速赋值的目的;

思路:

1>在.h文件中添加相应的属性例如

@property (assign,nonatomic) CGFloat frameX;

2>在.m文件中改写相应方法

-(CGFloat)frameX{
    return self.frame.origin.x;
}
-(void)setFrameX:(CGFloat)frameX{
    CGRect frame = self.view.frame;
    frame.origin.x = frameX;
    self.view.frame = frame;
}

这样在后续工作中使用的时候就会特别的方便,例如想更改控件的frame属性中的X值则在引入这个分类后直接如下书写即可

self.redView.frameX = 100;

完整代码请参考

GitHub

一个直接对控件的frame/bounds/center进行属性更改的UIView的分类

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-06 03:40:57

IOS开发之控件frame/bounds/center尺寸改变小技巧-简单给UIView新增分类(github链接)的相关文章

iOS开发时间控件怎么强制24小时制(小技巧)

1)当你的format格式是 NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease];[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; // 这里是用大写的 HNSString* dateStr = [dateFormatter stringFromDate:date];你获得就是24小时制的.2)当你的format格式用的是[d

IOS开发-UI控件的常见属性

一.概述 程序运行过程中,我们经常要改变控件的显示状态,如下载进度.播放器的播放进度.图片的放大缩小等,那么如何修改呢? 二. 修改UI控件的状态 每个UI控件都是一个对象,要修改这个对象的状态就是要修改这个对象的属性,比如,修改UILabel显示的文字就修改UILabel的text属性 @interface UILabel : UIView <NSCoding> @property(nonatomic,copy) NSString *text; // default is nil @end

IOS开发--一个控件添加后看不见 有哪些可能。

一个控件用肉眼看不见,有哪些可能 1.根本没有创建实例化这个控件 2.没有设置尺寸 3.控件的颜色跟父控件的背景色一样(实际上已经显示了,只不过用肉眼看不见) 4.透明度alpha <= 0.01 5.hidden = YES 6.没有添加到父控件中 7.被其他控件挡住了 8.位置不对 9.父控件发生了以上情况 10.特殊情况 * UIImageView没有设置image属性,或者设置的图片名不对 * UILabel没有设置文字,或者文字颜色和跟父控件的背景色一样 * UITextField没有

iOS编程(双语版)-视图-Frame/Bounds/Center

1. Frame 每个视图都有一个frame属性,它是CGRect结构,它描述了视图所在的矩形在其父视图中的位置. (屏幕坐标系默认的原点在左上角,x轴向右伸展,y轴向下伸展) 设置frame通常通过视图的指定初始化器initWithFrame 下面来看个例子,该例子初始化了3个相互叠加的矩形区域 (Objective-C代码) UIView* v1 = [[UIView alloc] initWithFrame:CGRectMake(113, 111, 132, 194)]; v1.backg

iOS开发-DatePicker控件

时间控件不管是Android还是iOS中都是必然存在的一个控件,具体的效果大同小异,显示日期,时间,iOS中有四种方式可以选择,Time, Date,Date and Time  , Count Down Timer,Demo比较简单,需要一个DatePicker控件和一个Button显示时间或者日期,具体实现如下: 页面布局 Main.storyboard布局: Y 效果: 代码实现 首先将控件拖入ViewController.h中,将Button的点击拖入ViewController.m中:

IOS开发之控件篇第二章 - UICollectionViewControllor

1.介绍 UICollectionView和UICollectionViewControllor是IOS6.0后引入的新控件 使用UICollectionView必须实现三个接口: UICollectionViewDataSource UICollectionViewDelegate UICollectionViewDelegateFlowLayout ------------------------------------------------------------------------

从零开始iOS8编程【iOS开发常用控件】

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源码下载:点我传送 AlertView控件 弹出对话框: 修改HelloHaoMengZhu项目代码, 添加AlertView: -(IBAction)testAlert { NSString *str = [[NSString alloc] initWithFormat:@"Hello, %@",txtField.te

iOS开发--UIKit控件之UISearchBar(搜索框)

初始化:UISearchBar继承于UIView,我们可以像创建View那样创建searchBar 1 UISearchBar *bar = [[UISearchBar alloc]initWithFrame:CGRectMake(20, 100, 250, 40)]; 2 [self.view addSubview:bar]; 1 // 这个属性可以设置searchBar的搜索 2 @property(nonatomic) UIBarStyle barStyle; 3 // 枚举如下: 4 t

IOS开发之控件篇UITabBarControllor第二章 - 遮掩TableView问题

在IOS7.0以后UITabBar 里面放入一个UITableView会出现一个问题,Table会被TabBar掩盖了,当移动到最后一项的时候,永远看不到,如下面的例子,总共是99项,但是只能显示到98 解决方法如下: - (void)viewDidLoad { [super viewDidLoad]; self.edgesForExtendedLayout = UIRectEdgeNone; } 主要是这一句self.edgesForExtendedLayout = UIRectEdgeNon