`

iPhone开发小技巧

    博客分类:
  • ios
 
阅读更多

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

UIImage *image = [UIImage imageNamed:filename]; 

CGImageRef imageRef = image.CGImage; 

CGRect rect = CGRectMake(origin.x, origin.y ,size.width, size.height); 

CGImageRef imageRefRect = CGImageCreateWithImageInRect(imageRef, rect); 

UIImage *imageRect = [[UIImage alloc] initWithCGImage:imageRefRect]; 



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


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


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]; 





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



#import <QuartzCore/QuartzCore.h> 

UIGraphicsBeginImageContext(currentView.bounds.size);     //currentView 当前的view 

[currentView.layer renderInContext:UIGraphicsGetCurrentContext()]; 

UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 

UIGraphicsEndImageContext(); 

UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil); 



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]; 





6、捕获iphone通话事件: 

CTCallCenter *center = [[CTCallCenter alloc] init]; 

center.callEventHandler = ^(CTCall *call) 



NSLog(@"call:%@", call.callState); 





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; 



9、设置旋转的原点: 



#import <QuartzCore/QuartzCore.h> 

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg.png"]]; 

imageView.layer.anchorPoint = CGPointMake(0.5, 1.0); 



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]; 


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]]; //拨号 




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]; 









13、设置时区 




NSTimeZone *defaultTimeZone = [NSTimeZone defaultTimeZone]; 

NSTimeZone *tzGMT = [NSTimeZone timeZoneWithName:@"GMT"]; 

[NSTimeZone setDefaultTimeZone:tzGMT]; 

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


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





[[NSNotificationCenter defaultCenter] addObserver:self 

selector:@selector(keyboardWillHide:) 

name:UIKeyboardWillHideNotification 

  object:nil]; 



- (IBAction)keyboardWillHide:(NSNotification *)note 



14、在一个程序中打开另一个程序的方法。 



http://www.cocoachina.com/iphonedev/sdk/2010/0322/768.html 

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 



number = number+0.5; 





return ceil(number); 
}

分享到:
评论

相关推荐

    iphone开发小技巧

    iPhone 将图片缩小成指定大小.txt iPhone 设置导航栏标题背景图片.txt iPhone关于调用摄像头代码.txt iPhone开发不得不知的几件事.txt UIKit 控件背景贴图方法.txt

    iphone开发中的一些小技巧

    在iPhone开发过程中,掌握一些小技巧能够显著提升开发效率与应用性能。以下是对给定文件信息中的几个关键知识点的详细解读: ### 1. Foursquare API 的使用 Foursquare API 是一个地理位置服务API,提供了丰富的...

    iphone初学者开发小技巧

    【iPhone初学者开发小技巧】 在iOS开发领域,特别是对于初学者来说,掌握一些实用的技巧可以大大提高开发效率,减少不必要的麻烦。以下是一些在iPhone应用开发中可能会遇到的常见问题及其解决办法: 1. **截取...

    让不懂编程的人爱上iPhone开发2

    ### 相关知识点 #### 1. **游戏开发基础概念** ...通过上述知识点的学习,即便是没有编程经验的新手也能逐步理解和掌握iPhone应用开发的基本流程和技术要点。这对于希望进入IT行业的人员来说是一笔宝贵的财富。

    iphone开发技巧UI篇之自定义TabBar

    本篇文章将深入探讨如何在iPhone开发中实现自定义TabBar,以提升应用的用户体验和视觉效果。 首先,我们要了解TabBar的基本概念。TabBar是iOS SDK中的UITabBarController类的一部分,它提供了一个底部栏,通常包含...

    iphone开发实践

    在“iPhone开发实践”这一主题中,我们主要探讨的是如何针对iPhone平台进行应用开发,特别是基于Web的应用程序。iPhone开发基础教程通常涵盖了一系列的技术和工具,包括HTML、CSS、JavaScript,有时还会涉及PHP等...

    精编Iphone开发教程

    【精编iPhone开发教程】 本教程全面覆盖了iPhone应用开发的核心知识,旨在帮助开发者从零开始掌握iOS平台的开发技能。教程深入浅出,既包含了基础的编程概念,也涉及了高级的技术应用,确保读者能够逐步成长为一名...

    iPhone开发书籍大全].Beginning.iPhone.SDK.Programming.with.Objective-C

    - 初学者或有一定编程基础但对iPhone开发不熟悉的程序员。 - 希望通过系统学习掌握iPhone应用程序开发技能的开发者。 #### 二、主要内容概述 ##### 第一部分:入门 - **第1章**:了解iPhone编程的基础知识 - ...

    Cocos2D-iPhone开发教程

    以下是对Cocos2D-iPhone开发的一些关键知识点的详细说明: 1. **Cocos2D基础**: - **场景(Scenes)**: Cocos2D中的场景是游戏或应用的基本构造单元,可以看作是游戏的不同阶段或屏幕。 - **层(Layers)**: 层...

    iPhone开发秘籍 Coverflow

    《iPhone开发秘籍:Coverflow》是一本专为iOS开发者准备的指南,主要聚焦于Coverflow这一独特的用户界面效果的实现。Coverflow是苹果公司在其iOS操作系统中引入的一种视觉效果,它模仿了翻阅专辑封面或图片的效果,...

    iPhone开发入门

    【iPhone开发入门】这篇文章主要介绍了如何入门iPhone应用程序的开发,从不同角度逐步深入,适合对iOS开发感兴趣的初学者。以下是对各个章节内容的详细解读: 1. **程序员眼中的iPhone**:这部分可能介绍iPhone作为...

    iphone开发基础教程源代码1

    在本“iPhone开发基础教程源代码1”中,我们涵盖了多个关键知识点,这些知识点对于初学者和有经验的iOS开发者来说都是至关重要的。这个压缩包包含了一系列与iPhone应用开发相关的项目,通过这些项目的源代码,我们...

    iphone开发基础教程(含源码)

    ### iPhone开发基础教程知识点概述 本教程旨在为初学者提供一套完整的iPhone应用开发入门指南,涵盖了从环境搭建到实际项目开发的各项基础知识。由于提供的部分内容链接无法直接访问,本文将根据标题、描述及标签中...

    Cocco2D-iPhone开发教程

    《Coco2D-iPhone开发教程》是一本深入探讨Coco2D-iPhone框架的专著,旨在帮助开发者掌握在iOS平台上创建2D游戏的技术。Cocos2D-iPhone是基于Cocos2D的一个分支,专门针对苹果的移动设备进行了优化,提供了丰富的功能...

    iphone游戏开发实例

    在本主题中,我们将深入探讨“iPhone游戏开发实例”,包括几个关键项目,如测试反应小游戏、计数器、计算器、篝火动画以及打转块游戏的实现。这些实例是iOS应用开发的重要组成部分,特别是对于那些希望进入或已经在...

    Cocos2D-iPhone开发教程(最全,最威的)

    这个“Cocos2D-iPhone开发教程”是为初学者和有一定经验的开发者设计的,提供了详尽的指导,帮助你快速掌握Cocos2D-iPhone的核心概念和实践技巧。 Cocos2D-iPhone的关键特性包括: 1. **场景(Scenes)与层...

    IOS应用源码之iphone开发技巧UI篇实现广告图片展现ADControllerTest.zip

    本教程将聚焦于iPhone开发中的UI技巧,特别是如何实现广告图片的展示。通过分析“ADControllerTest”这个源码项目,我们可以学习到如何在iOS应用中集成广告功能。 首先,我们要理解广告图片展现的基本原理。在iOS中...

Global site tag (gtag.js) - Google Analytics