iOS开发中最有用关键的代码整合

    1.判断邮箱格式是否正确的代码:

  // 利用正则表达式验证 -( BOOL )isValidateEmail:( NSString *)email

  {

  NSString *emailRegex = @"[A-Z0-9a-z._%+-][email protected][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 : @"rn--%@rn" ,boundary] dataUsingEncoding : NSUTF8StringEncoding ]];

  [body appendData :[[ NSString stringWithString : @"Content-Disposition:form-data; name="userfile"; filename="2.png"rn" ] dataUsingEncoding : NSUTF8StringEncoding ]]; // 上传上去的图片名字 [body appendData :[[ NSString stringWithString : @"Content-Type: application/octet-streamrnrn" ] dataUsingEncoding : NSUTF8StringEncoding ]];

  [body appendData :[ NSData dataWithData :imageData]];

  [body appendData :[[ NSString stringWithFormat : @"rn--%@--rn" ,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图片的解析

  //加载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

  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的合成

  - (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

  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

  + (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的内容也显示的图片里。

时间: 2016-02-27

iOS开发中最有用关键的代码整合的相关文章

ios开发-iOS开发中,如和使等待block执行完毕后再执行下面的代码?

问题描述 iOS开发中,如和使等待block执行完毕后再执行下面的代码? int a = 0; void (^requestBlock)(NSDictionary *) = ^(int data){ a = data;//这里假设data = 1,那么a也要 = 1 }: NSLog(a); 这里的a永远是0,在有这段block的前提下,有什么办法让程序同步执行,也就是等待block执行完之后再执行下面的代码?这里只是的例子,我确实有这方面的需要. 解决方案 自己用信号量来同步 block后面w

[译]iOS 开发中使用 Swift 进行 iBeacons 交互指南

本文讲的是[译]iOS 开发中使用 Swift 进行 iBeacons 交互指南, 原文地址:A Guide to Interacting with iBeacons in iOS using Swift 原文作者:MATT NEDRICH 译文出自:掘金翻译计划 译者:lovelyCiTY 校对者:Gocy015.Danny1451 #iOS 开发中使用 Swift 进行 iBeacons 交互指南 我最近致力于研究一个关于 iBeacons 的 iOS 项目.本文中,我将全面的介绍如何使用 

iOS开发中文件的上传和下载功能的基本实现_IOS

文件的上传 说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中.本文介绍如何不借助第三方框架实现iOS开发中得文件上传. 由于过程较为复杂,因此本文只贴出部分关键代码. 主控制器的关键代码: 复制代码 代码如下: YYViewController.m #import "YYViewController.h" #define YYEncode(str) [str dataUsingEncoding:NSUTF8StringEncoding] @interface YYV

总结iOS开发中的断点续传与实践_IOS

前言 断点续传概述 断点续传就是从文件上次中断的地方开始重新下载或上传数据,而不是从文件开头.(本文的断点续传仅涉及下载,上传不在讨论之内)当下载大文件的时候,如果没有实现断点续传功能,那么每次出现异常或者用户主动的暂停,都会去重头下载,这样很浪费时间.所以项目中要实现大文件下载,断点续传功能就必不可少了.当然,断点续传有一种特殊的情况,就是 iOS 应用被用户 kill 掉或者应用 crash,要实现应用重启之后的断点续传.这种特殊情况是本文要解决的问题. 断点续传原理 要实现断点续传 , 服

iOS开发中使用UIScrollView实现无限循环的图片浏览器_IOS

一.概述 UIKit框架中有大量的控件供开发者使用,在iOS开发中不仅可以直接使用这些控件还可以在这些控件的基础上进行扩展打造自己的控件.在这个系列中如果每个控件都介绍一遍确实没有必要,所谓授人以鱼不如授人以渔,这里会尽可能让大家明白其中的原理,找一些典型的控件进行说明,这样一来大家就可以触类旁通.今天我们主要来看一下UIScrollView的内容: UIView UIScrollView 实战--图片浏览器 二.UIView 在熟悉UIScrollView之前很有必要说一下UIView的内容.

ios开发中uiscrollview里嵌套一个uiscrollview

问题描述 ios开发中uiscrollview里嵌套一个uiscrollview ios开发中uiscrollview里嵌套一个uiscrollview 其中小得scrollview是一个用于放滚动图片的.大得scrollview是用于整个view滚动的..其中还有很多别的view譬如imageview等,现在遇到这样的问题:我滚动大得scrollview,放滚动图片的scroll不跟着动,就一直悬在固定的位置.求解 急呀 解决方案 如果小的uiscrollview是作为subview添加到外部

iOS开发中的单元测试(一) 对比OCUnit和GHUnit

本文不讨论单元测试是什么,或者它之于一个工程的利弊,我认为单元测试是一个开发者保证产出代码质 量的有效工具.本文从使用者的角度对比当下比较流行的两款单元测试框架,给大家提供一些选用建议.如果 你还不甚了解单元测试在工程中所起到的作用,或者还不知道TDD的开发模式,可参考:Test-Driven Development和Unit Testing. 本文对比两个iOS开发中常见的单元测试框架:OCUnit,被官方集成进XCode 4.x版本中:GHUnit,被推荐 最多的测试框架,带GUI界面.初窥

ios开发中时间转换的方法集锦

  这篇文章主要介绍了ios开发中时间转换的方法集锦,需要的朋友可以参考下 在开发iOS程序时,有时候需要将时间格式调整成自己希望的格式,这个时候我们可以用NSDateFormatter类来处理. 例如: //实例化一个NSDateFormatter对象 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; //设定时间格式,这里可以设置成自己需要的格式 [dateFormatter setDateFormat:@"yy

IOS开发中取消文本框输入时的小键盘

  这篇文章主要介绍了IOS开发中取消文本框输入时的小键盘,需要的朋友可以参考下 首先在Interface Builder中选择TextFields,然后在Text Field Attributes中找到Text Input Traits,选择Return Key为done.OK 定义方法 - (IBAction) textFieldDoneEditing:(id)sender; //按下Done键关闭键盘 实现方法 代码如下: //按完Done键以后关闭键盘 - (IBAction) text