1.判斷郵箱格式是否正確的代碼:// 利用Regex驗證-( BOOL )isValidateEmail:( NSString *)email{NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}" ;NSPredicate *emailTest = [ NSPredicate predicateWithFormat : @"SELF MATCHES%@",emailRegex];return [emailTest evaluateWithObject :email];} 2.圖片壓縮用法: UIImage *yourImage= [self imageWithImageSimple:image scaledToSize:CGSizeMake(210.0, 210.0)];// 壓縮圖片- ( UIImage *)imageWithImageSimple:( UIImage *)image scaledToSize:( CGSize )newSize{// Create a graphics image contextUIGraphicsBeginImageContext (newSize);// Tell the old image to draw in this newcontext, with the desired// new size[image drawInRect : CGRectMake ( 0 , 0 ,newSize. width ,newSize. height )];// Get the new image from the contextUIImage * newImage = UIGraphicsGetImageFromCurrentImageContext ();// End the contextUIGraphicsEndImageContext ();// Return the new image.return newImage;} 3.親測可用的圖片上傳代碼- ( IBAction )uploadButton:( id )sender {UIImage *image = [ UIImage imageNamed : @"1.jpg" ]; // 圖片名NSData *imageData = UIImageJPEGRepresentation (image, 0.5 );// 壓縮比例NSLog ( @" 位元組數 :%i" ,[imageData length]);// post urlNSString *urlString = @"http://192.168.1.113:8090/text/UploadServlet" ;// 伺服器位址// setting up the request object nowNSMutableURLRequest *request = [[ NSMutableURLRequest alloc ] init ] ;[request setURL :[ NSURL URLWithString :urlString]];[request setHTTPMethod : @"POST" ];//NSString *boundary = [ NSString stringWithString : @"---------------------------14737809831466499882746641449" ];NSString *contentType = [ NSString stringWithFormat : @"multipart/form-data;boundary=%@",boundary];[request addValue :contentType forHTTPHeaderField : @"Content-Type" ];//NSMutableData *body = [ NSMutableData data ];[body appendData :[[ NSString stringWithFormat : @"\r\n--%@\r\n" ,boundary] dataUsingEncoding : NSUTF8StringEncoding ]];[body appendData :[[ NSString stringWithString : @"Content-Disposition:form-data; name=\"userfile\"; filename=\"2.png\"\r\n" ] dataUsingEncoding : NSUTF8StringEncoding ]]; // 上傳上去的圖片名字[body appendData :[[ NSString stringWithString : @"Content-Type: application/octet-stream\r\n\r\n" ] dataUsingEncoding : NSUTF8StringEncoding ]];[body appendData :[ NSData dataWithData :imageData]];[body appendData :[[ NSString stringWithFormat : @"\r\n--%@--\r\n" ,boundary] dataUsingEncoding : NSUTF8StringEncoding ]]; [request setHTTPBody :body];// NSLog(@"1-body:%@",body);NSLog ( @"2-request:%@" ,request);NSData *returnData = [ NSURLConnection sendSynchronousRequest :request returningResponse :nil error : nil ];NSString *returnString = [[ NSString alloc ] initWithData :returnData encoding :NSUTF8StringEncoding ];NSLog ( @"3- 測試輸出: %@" ,returnString ); 4.給imageView載入圖片UIImage *myImage = [ UIImage imageNamed : @"1.jpg" ]; [ imageView setImage :myImage]; [ self . view addSubview : imageView ]; 5.對圖庫的操作選擇相簿:UIImagePickerControllerSourceTypesourceType=UIImagePickerControllerSourceTypeCamera; if (![UIImagePickerControllerisSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { sourceType=UIImagePickerControllerSourceTypePhotoLibrary; } UIImagePickerController * picker = [[UIImagePickerControlleralloc]init]; picker.delegate = self; picker.allowsEditing=YES; picker.sourceType=sourceType; [self presentModalViewController:picker animated:YES];選擇完畢: -(void)imagePickerController:(UIImagePickerController*)pickerdidFinishPickingMediaWithInfo:(NSDictionary *)info{ [picker dismissModalViewControllerAnimated:YES]; UIImage * image=[info objectForKey:UIImagePickerControllerEditedImage]; [self performSelector:@selector(selectPic:) withObject:imageafterDelay:0.1];} -(void)selectPic:(UIImage*)image{ NSLog(@"image%@",image); imageView = [[UIImageView alloc] initWithImage:image]; imageView.frame = CGRectMake(0, 0, image.size.width, image.size.height);[self.viewaddSubview:imageView]; [self performSelectorInBackground:@selector(detect:) withObject:nil];}detect 為自己定義的方法,編輯選取照片後要實現的效果取消選擇: -(void)imagePickerControllerDIdCancel:(UIImagePickerController*)picker { [picker dismissModalViewControllerAnimated:YES];} 6.跳到下個ViewnextWebView = [[ WEBViewController alloc ] initWithNibName : @"WEBViewController" bundle :nil ];[ self presentModalViewController : nextWebView animated : YES ]; 7.建立一個UIBarButton右邊按鈕UIBarButtonItem *rightButton = [[ UIBarButtonItem alloc ] initWithTitle : @" 右邊 " style :UIBarButtonItemStyleDone target : self action : @selector (clickRightButton)];[ self . navigationItem setRightBarButtonItem :rightButton]; 8.設定navigationBar隱藏self . navigationController . navigationBarHidden = YES ;// 9.UIlabel多行文字自動換行 (自動折行)UIView *footerView = [[UIView alloc]initWithFrame:CGRectMake(10, 100, 300, 180)];UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(10, 100, 300, 150)];label.text = @"Hello world! Hello world!Hello world! Hello world! Hello world! Hello world! Hello world! Hello world!Hello world! Hello world! Hello world! Hello world! Hello world! Helloworld!";// 背景顏色為紅色label.backgroundColor = [UIColor redColor];// 設定字型顏色為白色label.textColor = [UIColor whiteColor];// 文字置中顯示label.textAlignment = UITextAlignmentCenter;// 自動折行設定label.lineBreakMode = UILineBreakModeWordWrap;label.numberOfLines = 0; 10.代碼產生ButtonCGRect frame = CGRectMake ( 0 , 400 , 72.0 , 37.0 );UIButton *button = [ UIButton buttonWithType : UIButtonTypeRoundedRect ];button. frame = frame;[button setTitle : @" 新添加的按鈕 " forState: UIControlStateNormal ];button. backgroundColor = [ UIColor clearColor ];button. tag = 2000 ;[button addTarget : self action : @selector (buttonClicked:) forControlEvents :UIControlEventTouchUpInside ];[ self . view addSubview :button]; 10.2在xib檔案中已經建立好Button,通過tag擷取按鈕 UIButton *testButton= (UIButton*)[self.view viewWithTag:100]; [testButton addTarget:self action:@selector(test:) forControlEvents:UIControlEventTouchUpInside]; //按鈕事件 -(void) test: (id) sender{ UIAlertView *av = [[[UIAlertView alloc] initWithTitle:@"ceshi" message:@"test11111" delegate:nil cancelButtonTitle:@"OK"otherButtonTitles:nil] autorelease]; [av show];} 11.讓某個控制項在View的中心位置顯示:(某個控制項,比如 label , View ) label . center = self . view . center; 12.自訂text各種效果:cell.backgroundColor = [UIColorscrollViewTexturedBackgroundColor];// 設定文字的字型 cell.textLabel.font = [UIFont fontWithName:@"AmericanTypewriter" size:100.0f];// 設定文字的顏色 cell.textLabel.textColor = [UIColor orangeColor];// 設定文字的背景顏色 cell.textLabel.shadowColor = [UIColor whiteColor];// 設定文字的顯示位置 cell.textLabel.textAlignment = UITextAlignmentCenter; 13.隱藏statusBar: 在程式的 viewDidLoad 中加入 [[UIApplication sharedApplication]setStatusBarHidden:YES animated:NO]; 14.更改AlertView背景:UIAlertView *theAlert = [[[UIAlertViewalloc] initWithTitle:@"Atention" message: @"I'm a Chinese!" delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:@"Okay",nil] autorelease]; [theAlert show]; UIImage *theImage = [UIImageimageNamed:@"loveChina.png"]; theImage = [theImage stretchableImageWithLeftCapWidth:0topCapHeight:0]; CGSize theSize = [theAlert frame].size; UIGraphicsBeginImageContext(theSize); [theImage drawInRect:CGRectMake(5, 5, theSize.width-10, theSize.height-20)];// 這個地方的大小要自己調整,以適應 alertview 的背景顏色的大小。 theImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); theAlert.layer.contents = (id)[theImage CGImage]; 15.鍵盤透明: textField.keyboardAppearance = UIKeyboardAppearanceAlert; 16.狀態列的網路活動風火輪是否旋轉: [UIApplication sharedApplication].networkActivityIndicatorVisible , 預設值是 NO 。 17.截取螢幕圖片: // 建立一個基於位 圖的圖形上下文並指定大小為CGSizeMake(200,400)UIGraphicsBeginImageContext(CGSizeMake(200,400)); //renderInContext 呈現接受者及其子範圍到 指定的上下文[self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; // 返回 一個基於當前圖形內容相關的圖片 UIImage *aImage = UIGraphicsGetImageFromCurrentImageContext(); // 移除棧頂 的基於當前位元影像的圖形上下文UIGraphicsEndImageContext();// 以 png 格式 返回指定圖片的資料imageData = UIImagePNGR epresentation(aImage); 18.更改cell選中的背景: UIView *myview = [[UIView alloc] init]; myview.frame = CGRectMake(0, 0, 320, 47); myview.backgroundColor = [UIColorcolorWithPatternImage:[UIImage imageNamed:@"0006.png"]]; cell.selectedBackgroundView = myview;: 19.顯示圖片: CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 109.0f); UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect];[myImage setImage:[UIImage imageNamed:@"myImage.png"]]; myImage.opaque = YES; //opaque 是否透明[self.view addSubview:myImage]; 20.能讓圖片適應框的大小(beta)NSString*imagePath = [[NSBundle mainBundle] pathForResource:@"XcodeCrash"ofType:@"png"]; UIImage *image = [[UIImage alloc]initWithContentsOfFile:imagePath]; UIImage *newImage= [image transformWidth:80.f height:240.f]; UIImageView *imageView = [[UIImageView alloc]initWithImage: newImage]; [newImagerelease]; [image release]; [self.view addSubview:imageView]; 21. 實現點擊圖片進行跳轉的代碼:(產生一個帶有背景圖片的button,給button綁定想要的事件)UIButton *imgButton=[[UIButton alloc]initWithFrame:CGRectMake(0, 0, 120, 120)];[imgButton setBackgroundImage:(UIImage *)[self.imgArray objectAtIndex:indexPath.row] forState:UIControlStateNormal];imgButton.tag=[indexPath row];[imgButton addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside]; 22.鍵盤迴收: 1).增加一個button,相應touch down事件,隱藏鍵盤。這種方法,太山寨了。為了相應一個事件增加一個button太不值得的。 .h - (IBAction)dismissKeyBoard:(id)sender; .m - (IBAction)dismissKeyBoard:(id)sender { [testText resignFirstResponder]; } 2).第二種方法:在背景圖片上添加Tap事件,相應單擊處理。這種方法,很好代替了button方式,但是如果UI上沒有背景圖片,這種方法又回到到第一種山寨的方法行列中。 // 添加帶有處理時間的背景圖片 UIImageView *backView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)]; backView.image = [UIImage imageNamed:@"small3.png"]; backView.userInteractionEnabled = YES; UITapGestureRecognizer *singleTouch = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard:)]; [backView addGestureRecognizer:singleTouch]; backView.tag = 110; [self.view addSubview:backView]; -(void)dismissKeyboard:(id)sender{ [text resignFirstResponder]; } 3).在xib檔案中,修改xib檔案的objects屬性,預設是view屬性,我們可以修改為UIControl屬性,從而是xib檔案相應touch down事件。這種方法,缺點就是沒有xib就悲劇了。.h - (IBAction)dimissKeyboard:(id)sender; .m - (IBAction)dimissKeyboard:(id)sender { [text resignFirstResponder]; } 23、Gif圖片的解析 01//載入gif02 03 NSString *filePath = [[NSBundle mainBundle]pathForResource:@"bai3" ofType:@"gif"];04 05 NSData *data = [NSData dataWithContentsOfFile:filePath];06 07 CGImageSourceRef gif = CGImageSourceCreateWithData((CFDataRef)data, nil);08 09 //擷取gif的各種屬性10 11 CFDictionaryRef gifprops =(CGImageSourceCopyPropertiesAtIndex(gif,0,NULL));12 13 NSLog(@"_______%@",gifprops);14 15 16 NSInteger count =CGImageSourceGetCount(gif);17 18 NSLog(@"________%d",count);19 20 21 CFDictionaryRef gifDic = CFDictionaryGetValue(gifprops, kCGImagePropertyGIFDictionary);22 23 CFDictionaryRef delay = CFDictionaryGetValue(gifDic, kCGImagePropertyGIFDelayTime);24 25 NSLog(@"_______%@",delay);26 27 28 //[gifDic objectForKey:(NSString *)kCGImagePropertyGIFDelayTime];29 30 // NSNumber * w = CFDictionaryGetValue(gifprops, @"PixelWidth");31 32 // NSNumber * h =CFDictionaryGetValue(gifprops, @"PixelHeight");33 34 // float totalDuration = delay.doubleValue * count;35 36 // float pixelWidth = w.intValue;37 38 // float pixelHeight = h.intValue;39 40 //將gif解析成UIImage類型對象,並加進images數組中 41 42 43 NSMutableArray *images = [NSMutableArray arrayWithCapacity:count];44 45 for(int index=0;index<count;index++)46 47 {48 49 CGImageRef ref = CGImageSourceCreateImageAtIndex(gif, index, nil);50 51 UIImage *img = [UIImage imageWithCGImage:ref];52 53 [images addObject:img];54 55 CFRelease(ref);56 57 }58 59 CFRelease(gifprops);60 61 CFRelease(gif); Gif的合成01- (void)exportAnimatedGif:(CGImageSourceRef )gif :(NSMutableArray *)images02 03{04 05 NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"animated.gif"];06 07 CGImageDestinationRef destination = CGImageDestinationCreateWithURL(( CFURLRef)[NSURL fileURLWithPath:path],08 09 kUTTypeGIF,10 11 images.count,12 13 NULL);14 15 UIImage *image;16 17 for (int i = 0; i<images.count; i++)18 19 {20 21 image = images[i];22 23 CFDictionaryRef gifprops =(CGImageSourceCopyPropertiesAtIndex(gif,i,NULL));24 25 CFDictionaryRef gifDic = CFDictionaryGetValue(gifprops, kCGImagePropertyGIFDictionary);26 27 NSNumber *delay = CFDictionaryGetValue(gifDic, kCGImagePropertyGIFDelayTime);28 29 NSDictionary *gifDelay = [NSDictionary dictionaryWithObject:[NSDictionary dictionaryWithObject:delay forKey:(NSString *)kCGImagePropertyGIFDelayTime]30 31 forKey:(NSString *)kCGImagePropertyGIFDictionary];32 33 34 35 CGImageDestinationAddImage(destination,image.CGImage, (CFDictionaryRef)gifDelay);36 37 CGImageDestinationSetProperties(destination, ( CFDictionaryRef)gifprops);38 39 }40 41 42 43// CGImageDestinationSetProperties(destination, ( CFDictionaryRef)gifprops);44 45 CGImageDestinationFinalize(destination);46 47 CFRelease(destination);48 49 NSLog(@"animated GIF file created at %@", path);50 51 52} 24.將一個UIView對象的內容儲存為UIImage 01+ (UIImage*)imageFromView:(UIView*)view{02 03UIGraphicsBeginImageContextWithOptions(view.bounds.size, YES, view.layer.contentsScale);04 05[view.layer renderInContext:UIGraphicsGetCurrentContext()];06 07UIImage *image = UIGraphicsGetImageFromCurrentImageContext();08 09UIGraphicsEndImageContext();10 11return image;12 13}注意:產生的圖片的scale和view的scale一致,這樣才可以保證圖片的效果和view顯示的完全一致,使用renderInContext方法可以讓subviews的內容也顯示的圖片裡。