Objc工程常用宏整理

常用宏定义


//
//  LeooMacroHeader.h
//
//  Created by leoo on 16/7/7.
//  Copyright © 2016年 Het. All rights reserved.
//

#ifndef LeooMacroHeader_h
#define LeooMacroHeader_h

#ifdef __OBJC__

#endif

//Log
#ifdef DEBUG
#define MLog(...)   NSLog(__VA_ARGS__);
#define MLog_METHOD NSLog(@"%s", __func__);
#else
#define MLog(...);
#define MLog_METHOD;
#endif


//系统版本
#define SYSTEM_VERSION_EQUAL_TO(v)                  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v)              ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v)                 ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v)     ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)

#define IOS8 SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")


//屏幕适配
    #define iPhone4Width  320.0
    #define iPhone4Height 480.0

    #define iPhone5Width  320.0
    #define iPhone5Height 568.0

    #define iPhone6Width  375.0
    #define iPhone6Height 667.0

    #define iPhone6PWidth  414.0
    #define iPhone6PHeight 736.0

    #define isiPhone4 ([[UIScreen mainScreen] bounds].size.height <568)
    #define isiPhone5 ([[UIScreen mainScreen] bounds].size.height == 568)
    #define isiPhone6 (([[UIScreen mainScreen] bounds].size.width>320)&&([[UIScreen mainScreen] bounds].size.width<=375))
    #define isiPhone6Plus (([[UIScreen mainScreen] bounds].size.width>375)&&([[UIScreen mainScreen] bounds].size.width<=414))

    //获取屏幕的物理高度 高度
    #define SCREEN_WIDTH  ([UIScreen mainScreen].bounds.size.width)
    #define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height)
    //获取设备的中心X Y
    #define SCREEN_WIDTH_2  SCREEN_WIDTH/2
    #define SCREEN_HEIGHT_2 SCREEN_HEIGHT/2

    //常用高度
    #define STATUSBARHEIGHT 20.0
    #define NAVIBARHEIGHT   44.0
    #define TABBARHEIGHT    49.0

    #define BottomOfView(view) (view.frame.origin.y+view.frame.size.height)

    //Frame基础值
    #define iphone5BasicHeight  (1/iPhone5Height*(isiPhone4?iPhone5Height:SCREEN_HEIGHT))
    #define iphone5BasicWidth   (1/iPhone5Width*SCREEN_WIDTH)

    #define iPhone6BasicHeight  (1/iPhone6Height*(isiPhone6?iPhone6Height:SCREEN_HEIGHT))
    #define iPhone6BasicWidth   (1/iPhone6Width*SCREEN_WIDTH)

    #define SINGLE_LINE_WIDTH          (1 / [UIScreen mainScreen].scale)
    #define SINGLE_LINE_ADJUST_OFFSET  ((1 / [UIScreen mainScreen].scale) / 2)


//安全赋值
#define NULL_NUMBER  @"null"
#define SAFE_STRING(str)    (![str isKindOfClass: [NSString class]] ? @"" : str)
#define SAFE_NUMBER(value)  (![value isKindOfClass: [NSNumber class]] ? @(-1) : value)


//语言类型
#define CURRENT_LANGUAGE_IS_CHINESE  ([[[NSLocale preferredLanguages] objectAtIndex:0] isEqualToString:@"zh-Hans"]||[[[NSLocale preferredLanguages] objectAtIndex:0] isEqualToString:@"zh-Hant"])


//UIColor
// rgb颜色转换(16进制)
#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

#define RGBCOLOR(R, G, B, A) [UIColor colorWithRed:R/255.0 green:G/255.0 blue:B/255.0 alpha:A]


//Math
//角度获取弧度
#define DEGREES_TO_RADIAN(x)      (M_PI * (x) / 180.0)
//弧度获取角度
#define RADIAN_TO_DEGREES(radian) (radian*180.0)/(M_PI)

#endif /* LeooMacroHeader_h */
posted @ 2016-07-07 15:36  moyazi  阅读(213)  评论(0编辑  收藏  举报