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:@"\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];

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
= UIImagePNGRepresentation(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.键盘回收:

-(IBAction)textFieldDoneEditing:(id)sender{

[sender resighFirstRespond];

}

通过点击背景回收键盘:(两个都得添加)

-(IBAction)textFieldDoneEditing:(id)sender{

[sender resighFirstRespond];

}

-(IBAction)backgroundTapped:(id)sender{

[nameField resignFirstRespond];

[numberField resignFirstRespond];

}

iOS开发中一些有用的小代码,布布扣,bubuko.com

时间: 2024-12-27 20:33:39

iOS开发中一些有用的小代码的相关文章

iOS开发中经常用的实用代码合集

iOS开发中经常用的实用代码合集 本文整理了,在iOS开发中我们所遇到一些开发问题的技巧类的代码,让你在开发过程中避免了很多弯路,希望能给你的开发带来帮助和启发. 1.判断邮箱格式是否正确的代码: // 利用正则表达式验证 -( BOOL )isValidateEmail:( NSString  *)email { NSString  *emailRegex =  @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}&

iOS开发中可能有用的那些分类们Categories

Categories是给你得不到源码的classes增加功能的一种方法. UIImageView+FaceAwareFill 这个类别使用了Aspect Fill内容模式,可以自动根据图像内容进行调整,当检测到人脸时,它会以脸部中心替代掉以图片的几何中心. 测试环境:Xcode 5.0,iOS 6.0以上 NSRegularEx+ObjCRegex Objective-C-RegEx-Categories是NSRegularExpression的一个延展,它可以把Object-C中的很多正则表达

iOS 开发中使用到的小技巧汇总

国庆即将来到,一个小项目也即将完成,把自己在项目中用的一些小技巧写出来,方便查找. 1,去掉分割线--动画设置透明度alpha //去掉tableView的分隔线: self.tableView.separatorStyle=UITableViewCellSeparatorStyleNone; self.tableView.showsVerticalScrollIndicator=NO; 2. 解决cell分割线左边短20px的问题 -(void)viewDidLayoutSubviews{ i

iOS开发中的总结的小技巧,分享给大家!!(待续未完)

这是我在写项目或者学习知识点或者请教人家的时候总结的小技巧 原来是写在笔记本上面的,还是分享给大家了.可能会很乱,觉得对自己有用的就拿走吧,有错漏的地方也求大家指点修正.废话不多说直接来. 1. 监听控件的三种方法 1) addTarget 2)代理 3)通知 2. UITextfiled(文本框)中有一个属性:clearButtonMode 选择 UITextFieldViewModeAlways 就可以在输入多个字符后,右边有个x号点一下全部清除,用户体验会好一点. UITextField

iOS 开发中需要注意的小地方

/** 图片长度截取方法 */ - (UIImage *)imageFromImage:(UIImage *)image inRect:(CGRect )rect{ CGImageRef sourceImageRef = [image CGImage]; CGImageRef newImageRef = CGImageCreateWithImageInRect(sourceImageRef, rect); UIImage *newImage = [UIImage imageWithCGImage

iOS开发中的几个小坑

1.比较NSString时,不要用==,要用isEqualToString:方法 2.不要把动画代码放入viewDidLoad中,而是应该放入viewDidAppear中 3.UIAlertView调用dismissWithClickedbuttonIndex后,alertView:didDismissWithButtonIndex会被代理调用,而alertView:clickedButtonAtIndex不会被调用 4.在switch语句中,若声明了变量,则需要用{}将case语句括起来. 5

iOS开发中容易遗忘的小细节

1.在新建一个子类后不要忘了在storyboard将对应控制器的Class属性设置为这个子类. 2.在创建一个segue后不要忘了给segue设置标识符. 3.添加BOOL属性时不要忘了在括号中写getter = isXXX 4.布局UI控件时不要忘了能填充的控件就填充,方便计算frame 5.常数不要忘记写成静态变量(最好不要用宏,因为宏没有类型,只是简单替换) 6.用if进行判断时不要忘了写成三目运算符 条件 ? 结果1 : 结果2   ,简洁高效. 7. 待补充.

我总结的iOS开发中的几个小坑

1.比较NSString时,不要用==,要用isEqualToString:方法 2.不要把动画代码放入viewDidLoad中,而是应该放入viewDidAppear中 3.UIAlertView调用dismissWithClickedbuttonIndex后,alertView:didDismissWithButtonIndex会被代理调用,而alertView:clickedButtonAtIndex不会被调用 4.在switch语句中,若声明了变量,则需要用{}将case语句括起来. 5

iOS开发中的那些的约定俗成(1)————《编写高质量iOS与OS X代码的52个有效方法》读书笔记(第一章)

iOS开发中的那些的约定俗成(1) ----<编写高质量iOS与OS X代码的52个有效方法>读书笔记(第一章) 前言 "我要成为一个高产的开发人员.""想要混的好,就得多努力." 写这些东西是因为毕竟看了书,但是看书看过去之后,也许印象不是很深刻,有些东西现在也理解不了,那我就把我理解的,现在就可以用到的东西,简单的写出来就好,让自己今后看到就能明白其中的意思. 还有就是锻炼一下表达,编辑能力,慢慢的提升自己,随时随地的都要有一个锻炼的心. 最后当然就