iOS开发UI控件的长宽高直接访问
2021-03-03 本文已影响0人
Flynn_Lee
1、给UIView写一个分类,下面分别是.h和.m文件的实现源码
.h文件
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface UIView (viewCategory)
///控件的x值
@property(nonatomic,assign)CGFloat X;
///控件的y值
@property(nonatomic,assign)CGFloat Y;
///控件的高度
@property(nonatomic,assign)CGFloat Height;
///控件的宽度
@property(nonatomic,assign)CGFloat Width;
///控件的size
@property(nonatomic,assign)CGSize Size;
///控件中心点的X
@property(nonatomic,assign)CGFloat centerX;
///控件中心点的y
@property(nonatomic,assign)CGFloat centerY;
@end
NS_ASSUME_NONNULL_END
.m文件
#import "UIView+viewCategory.h"
@implementation UIView (viewCategory)
#pragma mark set方法实现区域
-(void)setX:(CGFloat)X
{
CGRect frame = self.frame;
frame.origin.x = X;
self.frame = frame;
}
-(void)setY:(CGFloat)Y
{
CGRect frame = self.frame;
frame.origin.y = Y;
self.frame = frame;
}
-(void)setWidth:(CGFloat)Width
{
CGRect frame = self.frame;
frame.size.width = Width;
self.frame = frame;
}
-(void)setHeight:(CGFloat)Height
{
CGRect frame = self.frame;
frame.size.height = Height;
self.frame = frame;
}
-(void)setSize:(CGSize)Size
{
CGRect frame = self.frame;
frame.size = Size;
self.frame = frame;
}
-(void)setCenterX:(CGFloat)centerX
{
CGPoint center = self.center;
center.x = centerX;
self.center = center;
}
-(void)setCenterY:(CGFloat)centerY
{
CGPoint center = self.center;
center.y = centerY;
self.center = center;
}
#pragma mark get方法实现区域
-(CGFloat)X
{
return self.frame.origin.x;
}
-(CGFloat)Y
{
return self.frame.origin.y;
}
-(CGFloat)Width
{
return self.frame.size.width;
}
-(CGFloat)Height
{
return self.frame.size.height;
}
-(CGSize)Size
{
return self.frame.size;
}
-(CGFloat)centerX
{
return self.center.x;
}
-(CGFloat)centerY
{
return self.center.y;
}
@end
2、头文件导入,可以在要使用的页面直接导入头文件,也可以在PCH文件内导入头文件
#import "UIView+viewCategory.h"
3、具体控件使用
UIButton *button = [[UIButton alloc]init];
button.X = 10;
button.Y = 10;
button.Width = 100;
button.Height = 100;