1:判斷設備html
//設備名稱 return [UIDevice currentDevice].name; //設備型號,只可獲得是何設備,沒法獲得是第幾代設備 return [UIDevice currentDevice].model; //系統版本型號,如iPhone OS return [UIDevice currentDevice].systemVersion; //系統版本名稱,如6.1.3 return [UIDevice currentDevice].systemName; //判斷是否爲iPhone #define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) //判斷是否爲iPad #define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) //判斷是否爲ipod #define IS_IPOD ([[[UIDevice currentDevice] model] isEqualToString:@"iPod touch"]) //判斷是否爲iPhone5 #define IS_IPHONE_5_SCREEN [[UIScreen mainScreen] bounds].size.height >= 568.0f && [[UIScreen mainScreen] bounds].size.height < 1024.0f
2:枚舉的運用ios
typedef enum { //如下是枚舉成員 TestA = 0, TestB, TestC, TestD }Test;//枚舉名稱 亦能夠以下定義(推薦:結構比較清晰),其中Test1爲枚舉的名稱: typedef NS_ENUM(NSInteger, Test1) { //如下是枚舉成員 Test1A = 0, Test1B = 1, Test1C = 2, Test1D = 3 }; 枚舉的定義還支持位運算的方式定義,向左移動幾位,它是二進制(等於號後面必須等於1),轉爲十進制,以下: typedef NS_ENUM(NSInteger, Test) { TestA = 1, //1 1 1 TestB = 1 << 1, //2 2 10 轉換成 10進制 2 TestC = 1 << 2, //4 3 100 轉換成 10進制 4 TestD = 1 << 3, //8 4 1000 轉換成 10進制 8 TestE = 1 << 4 //16 5 10000 轉換成 10進制 16 }; 能夠針對上面進行調用運算: Test tes=Testb; //NSLog("%ld",tes);--->2 Test newTes=(Testa|Testc); //NSLog("%ld",newTes);--->5
3:IOS開發中的CGFloat、CGPoint、CGSize和CGRectweb
一、數據類型:編程
CGFloat: 浮點值的基本類型 CGPoint: 表示一個二維座標系中的點 CGSize: 表示一個矩形的寬度和高度 CGRect: 表示一個矩形的位置和大小 typedef float CGFloat;// 32-bit typedef double CGFloat;// 64-bit struct CGPoint { CGFloat x; CGFloat y; }; typedef struct CGPoint CGPoint; struct CGSize { CGFloat width; CGFloat height; }; typedef struct CGSize CGSize; struct CGRect { CGPoint origin; CGSize size; }; typedef struct CGRect CGRect;
注意:CGRect數據結構的高度和寬度能夠是負數。例如,一個矩形的原點是[0.0,0.0]和大小是[10.0,10.0]。這個矩形徹底等同原點是[10.0,10.0]和大小是[-10.0,-10.0]的矩形。數據結構
二、使用值來建立幾何元素的方法字體
CGPointMake CGRectMake CGSizeMake CGPoint CGPointMake ( CGFloat x, CGFloat y ); CGSize CGSizeMake ( CGFloat width, CGFloat height ); CGRect CGRectMake ( CGFloat x, CGFloat y, CGFloat width, CGFloat height ); CGFloat ten=10.0f; CGPoint point = CGPointMake(0.0f, 0.0f); CGSize size = CGSizeMake(10.0f, 10.0f); CGRect rect = CGRectMake(point.x, point.y, size.width, size.height); NSLog(@"ten: %f", ten); NSLog(@"point: %@", NSStringFromCGPoint(point)); NSLog(@"size: %@", NSStringFromCGSize(size)); NSLog(@"rect: %@", NSStringFromCGRect(rect));
4:ios動態獲取UILabel的高度和寬度url
在使用UILabel存放字符串時,常常須要獲取label的長寬數據,本文列出了部分經常使用的計算方法。spa
1.獲取寬度,獲取字符串不折行單行顯示時所須要的長度.net
CGSize titleSize = [aString sizeWithFont:font constrainedToSize:CGSizeMake(MAXFLOAT, 30)];code
注:若是想獲得寬度的話,size的width應該設爲MAXFLOAT。
2.獲取高度,獲取字符串在指定的size內(寬度超過label的寬度則換行)所需的實際高度.
CGSize titleSize = [aString sizeWithFont:font constrainedToSize:CGSizeMake(label.frame.size.width, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];
注:若是想獲得高度的話,size的height應該設爲MAXFLOAT。
3.實際編程時,有時須要計算一段文字最後一個字符的位置,並在其後添加圖片或其餘控件(如info圖標),下面代碼爲計算label中最後一個字符後面一位的位置的方法。
CGSize sz = [label.text sizeWithFont:label.font constrainedToSize:CGSizeMake(MAXFLOAT, 40)]; CGSize linesSz = [label.text sizeWithFont:label.font constrainedToSize:CGSizeMake(label.frame.size.width, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap]; if(sz.width <= linesSz.width) //判斷是否折行 { lastPoint = CGPointMake(label.frame.origin.x + sz.width, label.frame.origin.y); } else { lastPoint = CGPointMake(label.frame.origin.x + (int)sz.width % (int)linesSz.width,linesSz.height - sz.height); }
5:帶屬性的字符串(NSMutableAttributedString)的使用
1.建立對象 NSString *original = @"今天你還好嗎?"; NSMutableAttributedString *attrTitle = [[NSMutableAttributedStringalloc] initWithString:original]; 2.設置顏色(NSForegroundColorAttributeName表明要設置顏色, value表明值, range 表明範圍) /** 其餘設置: 1.NSForegroundColorAttributeName //顏色 2.NSFontAttributeName //字體 3.NSBackgroundColorAttributeName //背景色 //還有其餘的不少的屬性,能夠本身去看蘋果的API,這裏再也不詳述 */ [attrTitle addAttribute:NSForegroundColorAttributeName value:[UIColorblueColor] range:NSMakeRange(0, 2)]; 3.添加到Label中 UILabel *label = [[UILabel alloc] init]; label.frame = CGRectMake(100, 100, 100, 40); [label setAttributedText:attrTitle]; [self.view addSubview:label];
6:UIWebView加載PDF遠端文件,並能夠進行放大縮小簡單的顯示;
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; webView.scalesPageToFit = YES; [self.view addSubview:webView]; NSString *path = @"http://temall.net:9090/html/reader.pdf"; //[[NSBundle mainBundle] pathForResource:@"SDK" ofType:@"pdf"]; //加載本地文件PDF NSURL *url = [NSURL URLWithString:path]; //[NSURL fileURLWithPath:path]; //加載本地文件PDF NSURLRequest *request = [NSURLRequest requestWithURL:url]; if (request) { [webView loadRequest:request]; }