`

【iOS】iOS开发中常用的几个功能代码

    博客分类:
  • 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);
}

分享到:
评论

相关推荐

    iOS开发调色板

    在iOS开发中,使用调色板有以下几个主要的好处: 1. **一致性**:调色板可以帮助确保在整个应用中使用一致的颜色,从而保持品牌识别度和视觉和谐。 2. **易用性**:对于设计师和开发者而言,使用调色板可以更轻松...

    IOS应用源码Demo-iOS开发者指南(集成常用开发代码库)-毕设学习.zip

    对于初学者来说,通过这些源码可以了解到过去几年iOS开发的一些主流实践,这有助于他们理解移动应用开发的基本流程,同时也能学习到如何将第三方库整合到项目中的技巧。 【标签】中的"IOS 源码 毕业设计 论文 App...

    iOS开发中的几种设计模式介绍

    本文将深入探讨几种在iOS开发中常用的设计模式:代理模式、观察者模式、MVC模式、单例模式、策略模式以及工厂模式。 1. **代理模式**: 代理模式在iOS开发中广泛应用,主要用于对象间通信。例如,UITableView的...

    IOS应用开发的常规架构

    标题“iOS应用开发的常规架构”涵盖了几个关键组件和设计模式,这些都是开发者在构建应用程序时必须掌握的基础知识。描述中提到的“导航栏”,“UITableView”,“集合空间(UICollectionView)的使用”,以及“手势...

    iOS 代码的规范

    首先,Objective-C编程艺术的章节1至6部分介绍了代码中需要特别注意的几个方面: 1. 初始化和销毁:在Objective-C中,类的初始化通常通过init方法实现,而清理工作则在dealloc方法中进行。开发者需要确保对象在初始...

    ios下几个常用的cocos2d开发工具v1

    本资源“ios下几个常用的cocos2d开发工具v1”集合了一些重要的开发辅助工具,帮助开发者提升效率并优化工作流程。 1. **纹理编辑器**:在Cocos2d中,纹理是游戏画面的基础元素,包括图像、动画等。一个强大的纹理...

    ios开发 简单demo(包含动画、时钟、计算器和常用UI界面)

    这个"ios开发 简单demo"包含了几个关键的学习点:动画、时钟、计算器以及常用UI界面。这些元素是构建iOS应用程序的基础,让我们逐一深入探讨。 1. **动画**:在iOS开发中,动画是提升用户体验的重要手段。UIKit框架...

    ios-微博项目纯代码.zip

    这个"ios-微博项目纯代码.zip"压缩包包含的代码示例主要展示了以下几个方面的技术应用: 1. **自定义TabBar**:在iOS应用中,TabBar是常用的导航组件,用于展示多个主要功能间的切换。自定义TabBar意味着开发者可能...

    iOS 学习UI部分,代码和笔记,超详细

    下面将分别介绍压缩包中涉及的几个关键知识点。 1. UIImageView:UIImageView是用来展示图片的控件,常用于应用启动图、背景图或者图标显示。你可以设置其显示模式(如填充、居中等),调整图片的透明度,并通过...

    IOS开发工程师面试常见问题

    CocoaPods是iOS开发中最常用的依赖管理工具。它可以方便地管理第三方库和框架,简化了项目的配置过程。使用方法包括安装CocoaPods、创建Podfile文件并指定依赖项,然后执行`pod install`命令来安装所需的库。 #### ...

    ios常用模板框架之Nav+UITabBar代码

    在实际的项目开发中总是有几个比较常见的模板,小编这几天给大伙出几期常用模板的博客,希望大家多提宝贵的意见! 这几个月最常用的莫过于Nav+UITabBar模板了;在实际的项目中,我比较侧重于纯代码,比较不喜欢拖...

    《iOS开发进阶》 PDF电子书下载 带书签目录 完整版

    虽然部分原文内容并未给出具体章节或内容,但从标题和描述中我们可以推测这本书可能涵盖的几个关键知识点。 ### 一、iOS开发环境搭建与配置 - **Xcode介绍**:Xcode是苹果官方提供的集成开发环境(IDE),是进行...

    ios9 airplay源码

    在实际开发中,要利用这些源码实现AirPlay功能,你需要熟悉Bonjour服务发现和HTTP/RTSP协议,同时掌握Objective-C或Swift编程,因为这是iOS开发的主要语言。在`testAirplayDll.cpp`中,你可能需要找到初始化AirPlay...

    《iOS应用开发攻略》.((美)德兰斯 (Drance,M.)).PDF

    3. Objective-C基础:Objective-C是较早被用于iOS开发的语言,一些老旧项目可能还在使用。了解其基础语法,包括类和继承、消息传递、内存管理等。 4. 用户界面设计:掌握UIKit框架,了解如何使用视图、控件、动画和...

    UI第一章:无限互联iOS开发教程课件-- iPhone开发入门

    - iOS应用程序的生命周期分为几个阶段:未运行、后台、前台、暂停、终止。每个阶段都有相应的回调方法,开发者可以通过这些方法来执行特定的操作,比如保存数据、释放资源等。 - **application...

    [iOS开发教程-4]Create a UITabBarController from scratch

    在iOS开发中,创建一个`UITabBarController`是构建用户界面的重要步骤,它允许用户通过底部的选项卡在多个视图控制器之间切换。本教程将深入讲解如何从零开始创建一个`UITabBarController`,主要关注源码实现和工具...

    iOS游戏开发实战入门

    在游戏开发部分,本书将通过几个具体的项目案例来指导读者实战操作。例如,在“找茬”和“黄金矿工”项目中,本书将引导读者进行需求描述、需求分析、技术点分析、数据设计以及编码实现。在这些案例中,读者将会了解...

    ios Excel多种表格纯代码

    为了实现这些功能,我们需要掌握以下几个关键概念和技巧: 1. 数据模型:构建一个数据模型来存储图表的数据,通常包括X轴和Y轴的值,以及可能的附加信息,如颜色、标签等。 2. 视图渲染:将数据模型转换为可视化的...

    ios开发入门.zipios开发入门.zipios开发入门.zip

    同时,Model-View-Controller(MVC)设计模式是iOS开发中的常用架构,它将应用分为模型、视图和控制器三个部分,帮助组织代码并提高可维护性。 六、用户界面设计 iOS应用的用户体验(UX)和用户界面(UI)设计非常...

    iOS MBProgressHUD

    MBProgressHUD 是一款在 iOS 开发中常用的进度指示器库,它提供了一种优雅的方式来显示加载状态、提示信息或者简单的操作反馈。这个库以其简洁的API和高度可定制性而备受开发者喜爱。在标题提到的“不一样的...

Global site tag (gtag.js) - Google Analytics