iOS 常用UI宏定义总结


#define iPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125,2436), [[UIScreen mainScreen] currentMode].size) : NO)

// 屏幕宽度,会根据横竖屏的变化而变化
#ifndef SCREEN_WIDTH
#define SCREEN_WIDTH    [[UIScreen mainScreen] bounds].size.width
#endif
// 屏幕高度,会根据横竖屏的变化而变化
#ifndef SCREEN_HEIGHT
#define SCREEN_HEIGHT   [[UIScreen mainScreen] bounds].size.height
#endif
// 屏幕宽度,跟横竖屏无关
#define DEVICE_WIDTH    (IS_LANDSCAPE ? [[UIScreen mainScreen] bounds].size.height : [[UIScreen mainScreen] bounds].size.width)

// 屏幕高度,跟横竖屏无关
#define DEVICE_HEIGHT   (IS_LANDSCAPE ? [[UIScreen mainScreen] bounds].size.width : [[UIScreen mainScreen] bounds].size.height)

// 有效高度,iPhoneX会去除无效的状态栏高度24和tabbar高度43
#define SAFE_SCREEN_H   ((SCREEN_HEIGHT<812)?SCREEN_HEIGHT:(SCREEN_HEIGHT-67))

//获得控件的坐标和宽高
#define FRAME_X(v)                         (v).frame.origin.x
#define FRAME_Y(v)                         (v).frame.origin.y
#define FRAME_WIDTH(v)                     (v).frame.size.width
#define FRAME_HEIGHT(v)                    (v).frame.size.height

//做自动化布局经常用的 和UI适配使用
#define ADAPT_W(v)                         (SCREEN_WIDTH*v/375.0f)
#define ADAPT_H(v)                         (((SCREEN_HEIGHT<812)?SCREEN_HEIGHT:(SCREEN_HEIGHT-145))*v/667.0f)
#define ADAPTX_H(v)                        (SAFE_SCREEN_H*(v)/667.0f)


#define MinX(v)                            CGRectGetMinX((v).frame)
#define MinY(v)                            CGRectGetMinY((v).frame)
#define MaxX(v)                            CGRectGetMaxX((v).frame)
#define MaxY(v)                            CGRectGetMaxY((v).frame)

//坐标转换使用的宏定义
#define RECT_CHANGE_x(v,x)                 CGRectMake(x, FRAME_Y(v), FRAME_WIDTH(v), FRAME_HEIGHT(v))
#define RECT_CHANGE_y(v,y)                 CGRectMake(FRAME_X(v), y, FRAME_WIDTH(v), FRAME_HEIGHT(v))
#define RECT_CHANGE_point(v,x,y)           CGRectMake(x, y, FRAME_WIDTH(v), FRAME_HEIGHT(v))
#define RECT_CHANGE_width(v,w)             CGRectMake(FRAME_X(v), FRAME_Y(v), w, FRAME_HEIGHT(v))
#define RECT_CHANGE_height(v,h)            CGRectMake(FRAME_X(v), FRAME_Y(v), FRAME_WIDTH(v), h)
#define RECT_CHANGE_size(v,w,h)            CGRectMake(FRAME_X(v), FRAME_Y(v), w, h)
//状态栏高度
#define STATUSBAR_HEIGHT                   [[UIApplication sharedApplication] statusBarFrame].size.height

//导航栏有关的
#define NAVIGATION_TITLEVIEW_WIDTH         140.0f
#define NAVIGATION_TITLEVIEW_HEIGHT		   30.0f
#define NAVIGATION_TITLEVIEW_CurXLoc       90.0f
#define NAVIGATION_TITLEVIEW_CurYLoc	   7.0f
#define UINAVIGATIONBAR_HEIGHT             44.5f
#define UITABBAR_HEIGHT                    (iPhoneX ? 83.f : 49.f)
#define TOP_BUTTOM_HEIGHT                  50.0f
#define BOTTOM_VIEW_HEIGHT                 45.0f
#define STATUS_BAR_HEIGHT                  (iPhoneX ? 44.f : 20.0f)
#define LIMITLINE_HEIGHT                   0.5f
#define NAVIGATION_TOPVIEW_HEIGHT          44.0f
#define TOP_TOOL_BAR_HEIGHT                (NAVIGATION_TOPVIEW_HEIGHT+STATUS_BAR_HEIGHT)

//底部安全区高度
#define kBottomSafeAreaHeight \
({\
CGFloat heigt = 0;\
UIWindow *window = [UIApplication sharedApplication].keyWindow;\
if (@available(iOS 11.0, *)) {\
heigt = window.safeAreaInsets.bottom;\
}\
(heigt);\
})\

#pragma mark -  角度弧度转化
#define DEGREES_TO_RADIAN(x)               (M_PI * (x) / 180.0)
#define RADIAN_TO_DEGREES(radian)          (radian*180.0)/(M_PI)

#pragma mark - Font
#define FONT(size) [UIFont systemFontOfSize:size]
#define FONT_BOLD(size) [UIFont boldSystemFontOfSize:size]

#define FONT_MEDIUM(size) \
({\
UIFont *font;\
if (@available(iOS 8.2, *)) {\
font = [UIFont systemFontOfSize:size weight:UIFontWeightMedium];\
} else {\
font = [UIFont systemFontOfSize:size];\
}\
(font);\
})\

#define FONT_SEMIBOLD(size) [UIFont systemFontOfSize:size weight:UIFontWeightSemibold]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值