你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS開發中一些有用的小代碼

iOS開發中一些有用的小代碼

編輯:IOS開發綜合
1.判斷郵箱格式是否正確的代碼: // 利用正則表達式驗證 -( 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 context UIGraphicsBeginImageContext (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 context UIImage * newImage =  UIGraphicsGetImageFromCurrentImageContext (); // End the context UIGraphicsEndImageContext (); // 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 url NSString  *urlString =  @"http://192.168.1.113:8090/text/UploadServlet" ; // 服務器地址 // setting up the request object now NSMutableURLRequest  *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.跳到下個View nextWebView  = [[ 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.代碼生成Button CGRect  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 //加載gif 02   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 *)images 02   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   03 UIGraphicsBeginImageContextWithOptions(view.bounds.size, YES, view.layer.contentsScale); 04   05 [view.layer renderInContext:UIGraphicsGetCurrentContext()]; 06   07 UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 08   09 UIGraphicsEndImageContext(); 10   11 return image; 12   13 }注意:生成的圖片的scale和view的scale一致,這樣才可以保證圖片的效果和view顯示的完全一致,使用renderInContext方法可以讓subviews的內容也顯示的圖片裡。  
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved