本文整理自:
http://blog.csdn.net/duxinfeng2010/article/details/9067947
http://hi.baidu.com/feng20068123/item/1935c6d022bf7513d78ed0d4
根據自己的習慣做了一些修改,簡化。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | #ifndef MacroDefinition_h #define MacroDefinition_h //AppDelegate #define APPDELEGATE [(AppDelegate*)[UIapplication sharedApplication] delegate] //----------------------系統設備相關---------------------------- //獲取設備屏幕尺寸 #define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width) #define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height)//應用尺寸 #define APP_WIDTH [[UIScreen mainScreen]applicationFrame].size.width #define APP_HEIGHT [[UIScreen mainScreen]applicationFrame].size.height //獲取系統版本 #define IOS_VERSION [[[UIDevice currentDevice] systemVersion] floatValue] #define CurrentSystemVersion [[UIDevice currentDevice] systemVersion] #define isIOS4 ([[[UIDevice currentDevice] systemVersion] intValue]==4) #define isIOS5 ([[[UIDevice currentDevice] systemVersion] intValue]==5) #define isIOS6 ([[[UIDevice currentDevice] systemVersion] intValue]==6) #define isAfterIOS4 ([[[UIDevice currentDevice] systemVersion] intValue]>4) #define isAfterIOS5 ([[[UIDevice currentDevice] systemVersion] intValue]>5) #define isAfterIOS6 ([[[UIDevice currentDevice] systemVersion] intValue]>6) //獲取當前語言 #define CurrentLanguage ([[NSLocale PReferredLanguages] objectAtIndex:0]) //判斷是否 Retina屏、設備是否%fhone 5、是否是ipad #define isRetina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) : NO) #define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO) #define isPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) //判斷是真機還是模擬器 #if TARGET_OS_IPHONE //iPhone Device #endif #if TARGET_IPHONE_SIMULATOR //iPhone Simulator #endif //----------------------系統設備相關---------------------------- //----------------------內存相關---------------------------- //使用ARC和不使用ARC #if __has_feature(objc_arc) //compiling with ARC #else // compiling without ARC #endif //釋放一個對象 #define SAFE_DELETE(P) if(P) { [P release], P = nil; } #define SAFE_RELEASE(x) [x release];x=nil //----------------------內存相關---------------------------- //----------------------圖片相關---------------------------- //讀取本地圖片 #define LOADIMAGE(file,ext) [UIImage imageWithContentsOfFile:[[NSBundle mainBundle]pathForResource:file ofType:ext]] //定義UIImage對象 #define IMAGE(A) [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:A ofType:nil]] //定義UIImage對象 #define ImageNamed(_pointer) [UIImage imageNamed:_pointer] //可拉伸的圖片 #define ResizableImage(name,top,left,bottom,right) [[UIImage imageNamed:name] resizableImageWithCapInsets:UIEdgeInsetsMake(top,left,bottom,right)] #define ResizableImageWithMode(name,top,left,bottom,right,mode) [[UIImage imageNamed:name] resizableImageWithCapInsets:UIEdgeInsetsMake(top,left,bottom,right) resizingMode:mode] //建議使用前兩種宏定義,性能高于后者 //----------------------圖片相關---------------------------- //----------------------顏色相關--------------------------- // rgb顏色轉換(16進制->10進制) #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] // 獲取RGB顏色 #define RGBA(r,g,b,a) [UIColor colorWithRed:r/255.0f green:g/255.0f blue:b/255.0f alpha:a] #define RGB(r,g,b) RGBA(r,g,b,1.0f) //背景色 #define BACKGROUND_COLOR [UIColor colorWithRed:242.0/255.0 green:236.0/255.0 blue:231.0/255.0 alpha:1.0] //清除背景色 #define CLEARCOLOR [UIColor clearColor] //----------------------顏色相關-------------------------- //----------------------其他---------------------------- //方正黑體簡體字體定義 #define FONT(F) [UIFont fontWithName:@"FZHTJW--GB1-0" size:F] //file //讀取文件的文本內容,默認編碼為UTF-8 #define FileString(name,ext) [[NSString alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:(name) ofType:(ext)] encoding:NSUTF8StringEncoding error:nil] #define FileDictionary(name,ext) [[NSDictionary alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:(name) ofType:(ext)]] #define FileArray(name,ext) [[NSArray alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:(name) ofType:(ext)]] //G-C-D #define BACK(block) dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), block) #define MAIN(block) dispatch_async(dispatch_get_main_queue(),block) //Alert #define ALERT(msg) [[[UIAlertView alloc] initWithTitle:nil message:msg delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil] show] //由角度獲取弧度 有弧度獲取角度 #define degreesToRadian(x) (M_PI * (x) / 180.0) #define radianToDegrees(radian) (radian*180.0)/(M_PI) //----------------------其他------------------------------- //----------------------視圖相關---------------------------- //設置需要粘貼的文字或圖片 #define PasteString(string) [[UIPasteboard generalPasteboard] setString:string]; #define PasteImage(image) [[UIPasteboard generalPasteboard] setImage:image]; //得到視圖的left top的X,Y坐標點 #define VIEW_TX(view) (view.frame.origin.x) #define VIEW_TY(view) (view.frame.origin.y) //得到視圖的right bottom的X,Y坐標點 #define VIEW_BX(view) (view.frame.origin.x + view.frame.size.width) #define VIEW_BY(view) (view.frame.origin.y + view.frame.size.height ) //得到視圖的尺寸:寬度、高度 #define VIEW_W(view) (view.frame.size.width) #define VIEW_H(view) (view.frame.size.height) //得到frame的X,Y坐標點 #define FRAME_TX(frame) (frame.origin.x) #define FRAME_TY(frame) (frame.origin.y) //得到frame的寬度、高度 #define FRAME_W(frame) (frame.size.width) #define FRAME_H(frame) (frame.size.height) //----------------------視圖相關---------------------------- //---------------------打印日志-------------------------- //Debug模式下打印日志,當前行,函數名 #if DEBUG #define DLog(FORMAT, ...) fprintf(stderr,"/nfunction:%s line:%d content:%s/n", __FUNCTION__, __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]); #else #define NSLog(FORMAT, ...) nil #endif //Debug模式下打印日志,當前行,函數名 并彈出一個警告 #ifdef DEBUG # define WDLog(fmt, ...) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:@"%s/n [Line %d] ", __PRETTY_FUNCTION__, __LINE__] message:[NSString stringWithFormat:fmt, ##__VA_ARGS__] delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; [alert show]; } #else # define NSLog(...) #endif //打印Frame #define LogFrame(frame) NSLog(@"frame[X=%.1f,Y=%.1f,W=%.1f,H=%.1f",frame.origin.x,frame.origin.y,frame.size.width,frame.size.height) //打印Point #define LogPoint(point) NSLog(@"Point[X=%.1f,Y=%.1f]",point.x,point.y) //---------------------打印日志-------------------------- #endif |
新聞熱點
疑難解答