iPhone开发中一些使用小技巧

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

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

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

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

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

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

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

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

- (BOOL) validateEmail: (NSString *) candidate {  
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:candidate];  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

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

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

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

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

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

6、捕获iphone通话事件:

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

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

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

8、使UIimageView的图像旋转:

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

9、设置旋转的原点:

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

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

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

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

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

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.

12、更改iphone的键盘颜色:

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

2. keyboardAppearance = UIKeyboardAppearanceAlert

- (void)textViewDidBeginEditing:(UITextView *)textView{  
NSArray *ws = [[UIApplication sharedApplication] windows];  
for(UIView *w in ws){  
NSArray *vs = [w subviews];  
for(UIView *v in vs)  
{  
if([[NSString stringWithUTF8String:object_getClassName(v)] isEqualToString:@"UIKeyboard"])  
{  
v.backgroundColor = [UIColor redColor];  
}  
}  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

13、设置时区

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

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

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

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

15、计算字符串的字数

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

2013-08-21 13:47:29

PhoneUDIDUUID

2009-05-29 09:30:10

iPhone苹果移动OS

2017-05-23 14:33:46

简历求职前端开发

2022-05-24 12:50:58

Pandas索引代码

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技术栈公众号