iPhone开发中一些使用小技巧

移动开发 iOS
本文介绍的是iPhone开发中一些使用小技巧,很详细的介绍了,在开发过程中提高效率的一些小知识,我们来看详细内容。

iPhone开发中一些使用小技巧是本文要介绍的内容,与友们分享一篇对编程友人有用的一篇文章,我们来看内容。

经过半年多的iphone开发,我发现在开发过程中最难的就是一些嘈杂的细节,而了解一些小技巧就会达到事半功倍的效果,下面我就总结一下在iphone开发中的一些小技巧。

1、如果在程序中想对某张图片进行处理的话(得到某张图片的一部分)可一用以下代码:

  1. UIImage *image = [UIImage imageNamed:filename];  
  2. CGImageRef imageimageRef = image.CGImage;  
  3.  
  4. CGRect rect = CGRectMake(origin.x, origin.y ,size.width, size.height);  
  5.  
  6. CGImageRef imageRefRect = CGImageCreateWithImageInRect(imageRef, rect);  
  7.  
  8. UIImage *imageRect = [[UIImage alloc] initWithCGImage:imageRefRect]; 

2、判断设备是iphone还是iphone4的代码:

  1. #define isRetina ([UIScreen instancesRespondToSelector:  
  2. @selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960),   
  3. [[UIScreen mainScreen] currentMode].size) : NO) 

3、判断邮箱输入的是否正确:

  1. - (BOOL) validateEmail: (NSString *) candidate {  
  2. NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}";   
  3. NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];   
  4. return [emailTest evaluateWithObject:candidate];  

4、如何把当前的视图作为照片保存到相册中去:

  1. #import <QuartzCore/QuartzCore.h> 
  2. UIGraphicsBeginImageContext(currentView.bounds.size);     //currentView 当前的view  
  3. [currentView.layer renderInContext:UIGraphicsGetCurrentContext()];  
  4. UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();  
  5. UIGraphicsEndImageContext();  
  6. UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil); 

5、本地通知(类似于push通知)按home键到后台十秒后触发:

  1. UILocalNotification *notification=[[UILocalNotification alloc] init];   
  2. if (notification!=nil) {   
  3. NSLog(@">> support local notification");   
  4. NSDate *now=[NSDate new];   
  5. notification.fireDate=[now addTimeInterval:10];   
  6. notification.timeZone=[NSTimeZone defaultTimeZone];   
  7. notification.alertBody=@"该去吃晚饭了!";   
  8. [[UIApplication sharedApplication].scheduleLocalNotification:notification];  

6、捕获iphone通话事件:

  1. CTCallCenter *center = [[CTCallCenter alloc] init];  
  2. center.callEventHandler = ^(CTCall *call)   
  3. {  
  4. NSLog(@"call:%@", call.callState);  

7、iOS 4 引入了多任务支持,所以用户按下 “Home” 键以后程序可能并没有退出而是转入了后台运行。如果您想让应用直接退出,最简单的方法是:在 info-plist 里面找到 Application does not run in background 一项,勾选即可。

8、使UIimageView的图像旋转:

  1. float rotateAngle = M_PI;  
  2. CGAffineTransform transform =CGAffineTransformMakeRotation(rotateAngle);  
  3. imageView.transform = transform; 

9、设置旋转的原点:

  1. #import <QuartzCore/QuartzCore.h> 
  2. UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg.png"]];  
  3. imageView.layer.anchorPoint = CGPointMake(0.5, 1.0); 

10、实现自定义的状态栏(遮盖状态栏):

  1. CGRect frame = {{0, 0}, {320, 20}};  
  2. UIWindow* wd = [[UIWindow alloc] initWithFrame:frame];  
  3. [wd setBackgroundColor:[UIColor clearColor]];  
  4. [wd setWindowLevel:UIWindowLevelStatusBar];  
  5. frame = CGRectMake(100, 0, 30, 20);  
  6. UIImageView* img = [[UIImageView alloc] initWithFrame:frame];  
  7. [img setContentMode:UIViewContentModeCenter];  
  8. [img setImage:[UIImage imageNamed:@"00_0103.png"]];  
  9. [wd addSubview:img];  
  10. [wd makeKeyAndVisible];  
  11. [UIView beginAnimations:nil context:nil];  
  12. [UIView setAnimationDuration:2];  
  13. frame.origin.x += 150;  
  14. [img setFrame:frame];  
  15. [UIView commitAnimations]; 

11、在程序中实现电话的拨打:

  1. //添加电话图标按钮   
  2. UIButton *btnPhone = [[UIButton buttonWithType:UIButtonTypeCustom] retain];   
  3. btnPhone.frame = CGRectMake(280,10,30,30);   
  4. UIImage *image = [UIImage imageNamed:@"phone.png"];       
  5. [btnPhone setBackgroundImage:image forState:UIControlStateNormal];   
  6. //点击拨号按钮直接拨号   
  7. [btnPhone addTarget:self action:@selector(callAction:event:) forControlEvents:UIControlEventTouchUpInside];   
  8. [cell.contentView addSubview:btnPhone];  //cell是一个UITableViewCell   
  9. //定义点击拨号按钮时的操作   
  10. - (void)callAction:(id)sender event:(id)event{   
  11. NSSet *touches = [event allTouches];   
  12. UITouch *touch = [touches anyObject];   
  13. CGPoint currentTouchPosition = [touch locationInView:self.listTable];   
  14. NSIndexPath *indexPath = [self.listTable indexPathForRowAtPoint: currentTouchPosition];   
  15. if (indexPath == nil) {   
  16. return;   
  17. }   
  18. NSInteger section = [indexPath section];   
  19. NSUInteger row = [indexPath row];   
  20. NSDictionary *rowData = [datas objectAtIndex:row];   
  21. NSString *num = [[NSString alloc] initWithFormat:@"tel://%@",number]; //number为号码字符串       
  22. [[UIApplication sharedApplication] openURL:[NSURL URLWithString:num]]; //拨号   

12、更改iphone的键盘颜色:

1.只有这2种数字键盘才有效果。UIKeyboardTypeNumberPad,UIKeyboardTypePhonePad

2. keyboardAppearance = UIKeyboardAppearanceAlert

  1. - (void)textViewDidBeginEditing:(UITextView *)textView{  
  2. NSArray *ws = [[UIApplication sharedApplication] windows];  
  3. for(UIView *w in ws){  
  4. NSArray *vs = [w subviews];  
  5. for(UIView *v in vs)  
  6. {  
  7. if([[NSString stringWithUTF8String:object_getClassName(v)] isEqualToString:@"UIKeyboard"])  
  8. {  
  9. v.backgroundColor = [UIColor redColor];  
  10. }  
  11. }  

13、设置时区

  1. NSTimeZone *defaultTimeZone = [NSTimeZone defaultTimeZone];  
  2. NSTimeZone *tzGMT = [NSTimeZone timeZoneWithName:@"GMT"];  
  3. [NSTimeZone setDefaultTimeZone:tzGMT]; 

上面两个时区任意用一个。

14、Ipad隐藏键盘的同时触发方法。

  1. [[NSNotificationCenter defaultCenter] addObserver:self  
  2. selector:@selector(keyboardWillHide:)  
  3. name:UIKeyboardWillHideNotification  
  4.   object:nil];  
  5. - (IBAction)keyboardWillHide:(NSNotification *)note 

15、计算字符串的字数

  1. -(int)calculateTextNumber:(NSString *)text  
  2. {  
  3. float number = 0.0;  
  4. int index = 0;  
  5. for (index; index < [text length]; index++)  
  6. {  
  7. NSString *protoText = [text substringToIndex:[text length] - index];  
  8. NSString *toChangetext = [text substringToIndex:[text length] -1 -index];  
  9. NSString *charater;  
  10. if ([toChangetext length]==0)  
  11. {  
  12. charater = protoText;  
  13. }  
  14. else   
  15. {  
  16. NSRange range = [text rangeOfString:toChangetext];  
  17. charater = [protoText stringByReplacingCharactersInRange:range withString:@""];  
  18. }  
  19. NSLog(charater);  
  20. if ([charater lengthOfBytesUsingEncoding:NSUTF8StringEncoding] == 3)  
  21. {  
  22. number++;  
  23. }  
  24. else   
  25. {  
  26. numbernumber = number+0.5;  
  27. }  
  28. }  
  29. return ceil(number);  
  30. }  

小结:iPhone开发中一些使用小技巧的内容介绍为完了,希望本文对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2013-03-29 09:03:59

iOS实用小代码iOS开发

2012-12-24 14:51:02

iOS

2015-08-17 15:53:58

Linux桌面

2011-10-26 20:55:43

ssh 安全

2024-03-11 15:08:26

Linux操作系统进程

2022-02-17 13:58:38

Linux技巧文件

2021-10-12 23:10:58

UnsafeJavaJDK

2018-09-11 16:15:36

Vue高版本前端

2020-09-25 08:28:12

Javascript

2022-08-28 23:51:04

编辑器vim代码

2013-08-21 13:47:29

PhoneUDIDUUID

2013-07-18 16:16:51

2009-05-29 09:30:10

iPhone苹果移动OS

2022-05-24 12:50:58

Pandas索引代码

2017-05-23 14:33:46

简历求职前端开发

2019-11-22 10:10:46

IT工具技术

2009-11-17 17:15:21

路由器安全设置

2011-06-01 16:50:21

JAVA

2022-12-02 14:58:27

JavaScript技巧编程

2012-05-21 10:13:05

XCode调试技巧
点赞
收藏

51CTO技术栈公众号