`

【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常用模板框架之Nav+UITabBar代码

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

    《iOS6开发指南》精彩书摘

    然后重点介绍了几个常用的调试工具,具体包括日志与断言的输出、LLDB调试工具、异常堆栈报告分析;接下来讲解了如何在真机上调试应用;最后分析了Xcode设备管理工具的使用。 第16章“基于测试驱动的iOS开发”。了解...

    ios-MVVM-分离简化控制器中创建tableView和collectionView的代码.zip

    代码加入了cell自适应高度代码,代码实现已经进行封装,配合MJExtension,MJExtension,AFNetworking等常用开发框架使用更佳,主要用于分离控制器中的代码,降低代码耦合程度,可以根据自己使用习惯调整代码。...

    在iOS中实现设计模式代码实现

    在iOS开发中,设计模式是一套被广泛认可的解决特定设计问题的模板。它们帮助开发者构建可维护、可扩展且耦合度低的软件。以下是几种常用设计模式在iOS中的实现说明: 1. **单例模式(Singleton Pattern)**: 单例...

    IOS开发代码工具集合+项目模板

    源码zzCommonProject,本项目由zzzili提供源码 这是一个轻量级的ios开发工具包(zzCommon) 工具包内包含了ios开发中常用的一些实体类工具,包括(异步图片下载、自动版本更新、JSON字符串解析、POST请求等),宗旨在为...

    封装android开发中常用的Utils,也许你的项目只需要这一个库就完全够了。

    支持加载本地和网络,一键开启自动翻页功能,内设好几种翻页动画)、高仿iOS进度条和对话框、activity基类的封装(可继承自BaseActivity自行拓展)、常用自定义View(圆角头像等)、Glide一行代码加载图片、万能的...

    Colours for iOS(iPhone源代码)

    来源:github/Colours-for-iOSLicence:MIT作者:Benjamin Gordon ... 小编注:这份代码十分简单,学习iOS开发不用一个月就能写出来。小编收集进来的原因是:方便!一下子有100多种常用的颜色,何乐而不为。

    IOS App 无代码入侵的方法hook详细介绍

    iOS App 无代码入侵的方法hook 继续Objective-C runtime的研究 ... 继承 在面向对象开发中是非常常用的,像我们现在做的项目工程中都会有一个BaseViewController, 所有新建的ViewController都继承BaseViewController,

    Colours for iOS多种预定义颜色功能

    这份代码十分简单,学习iOS开发不用一个月就能写出来。小编收集进来的原因是:方便!一下子有100多种常用的颜色,何乐而不为。 A collection of predefined UIColors you can use in your apps. Just include the ...

    ios-MobileProject.zip

    9 增加百度地图显示页面功能实例,实现在地图上显示几个坐标点,并自定义坐标点的图标跟弹出提示窗内容,实现当前定位并画出行车路线图; 10 增加FLEX,在本地测试版本开启,FLEX是Flipboard官方发布的一组专门...

    iOS常用加密算法介绍和代码实践

    iOS系统库中定义了软件开发中常用的加解密算法,接口为C语言形式。具体包括了以下几个大类:  #include &lt;CommonCrypto&gt; //常用加解密算法 #include &lt;CommonCrypto&gt; //摘要算法 #include #include #...

    iOS-OpenCV-BasicAPI:使用基础API

    用的OpenCV3.4.2版本, 下面我也会给大家展示几个里面的效果, 并且附上代码。 2.该demo主要是基于iOS的ObjectC和C++开发, 需要一部分C++基础, 如果需要深入了解里面的具体算法我们可以在讨论区讨论;如果只会C++...

    JAVA上百实例源码以及开源项目源代码

     Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...

    macOS应用开发基础教程+源码Swift4.0

    macOS 应用开发基础教程,对 macOS 平台中应用开发的 AppKit 系统...最后介绍了几个小型项目的 demo 开发过程关键代码和开发思路,力求让读者从基础知识,方法论,项目实践多纬度去理解和掌握 macOS 平台的应用开发。

    百度地图开发java源码-KUtils-master:封装android开发中常用的Utils,也许你的项目只需要这一个库就完全够了。不信你看

    支持加载本地和网络,一键开启自动翻页功能,内设好几种翻页动画)、高仿iOS进度条和对话框、activity基类的封装(可继承自BaseActivity自行拓展)、常用自定义View(圆角头像等)、Glide一行代码加载图片、万能的...

    百度地图开发java源码-KUtils:封装android开发中常用的Utils,也许你的项目只需要这一个库就完全够了。不信你看,有图有真相。

    支持加载本地和网络,一键开启自动翻页功能,内设好几种翻页动画)、高仿iOS进度条和对话框、activity基类的封装(可继承自BaseActivity自行拓展)、常用自定义View(圆角头像等)、Glide一行代码加载图片、万能的...

    详解iOS视频播放方式

    多媒体这整个系列的文章自己也准备好开始整理了,先从视频音频...要不是刚接触iOS开发的同学应该是知道MediaPlayer这个框架的,要是想简单的使用它播放视频,可能几行代码就能搞定了,它里面有一个MPMoviePlayerViewCon

    微信公众平台应用开发:方法、技巧与案例.(机械工业.柳峰)

    他还是一位资深的Java软件开发工程师和Android/iOS移动应用开发工程师,活跃于CocoaChina、开源中国、CSDN等社区,CSDN博客专家,在CSDN博客撰写了系列微信公众平台二次开发的教程,深受欢迎并被广泛传播,也因此...

Global site tag (gtag.js) - Google Analytics