关于IOS开发的一些有用的代码片段(别人总结和自己的)
2013-12-04 11:06
911 查看
1.如何用NSLog输出NSRange,CGRect等结构体NSString 中的方法:NSStringFromCGPoint
NSStringFromCGSize
NSStringFromCGRect
NSStringFromCGAffineTransform
NSStringFromUIEdgeInsets
如:NSLog(@"rect1: %@", NSStringFromCGRect(rect1));
2.如何在navigationviewcontroller中,pop到之前不同的viewcontroller(push过的viewcontroller)?每当我们push到一个viewcontroller时,就会把这个viewcontroller的实例保存到NSArray里,通过array可以获取到任何一个viewcontroller。
3,图片模糊化处理
4.如何使用 NSNotificationCenter 在viewcontroller之间进行传值?简单点的来,两个界面间传值,直接上代码了:sendViewcontroller.m
5.通过系统自带的NSPredicate使用正则表达式。(在TextField中)
6.如何限制UITextField输入长度(监听textField文本变化的事件)1、实现UITextFieldDelegate协议;
2、实现textField:shouldChangeCharactersInRange:replacementString:方法;
功能:
把textField中位置为range的字符串替换为string字符串; 此函数在textField内容被修改时调用;
返回值:
YES,表示修改生效;NO,表示不做修改,textField的内容不变。
参数说明:
textField:响应UITextFieldDelegate协议的UITextField控件。
range: UITextField控件中光标选中的字符串,即被替换的字符串;
range.length为0时,表示在位置range.location插入string。
string: 替换字符串; string.length为0时,表示删除。
7.使用ios5.0以后的一个方法自定义table View Cell
8.获取全局的Delegate对象,这样我们可以调用这个对象的方法和变量
9.获取截屏
10.货币格式转方法一:
11.ios 禁用多个按钮同时按下的效果(解决bug) 把那些不能同时点下的按钮或者视图设置一下即可: [view setExclusiveTouch:YES];
12.打乱数组元素的顺序
NSStringFromCGSize
NSStringFromCGRect
NSStringFromCGAffineTransform
NSStringFromUIEdgeInsets
如:NSLog(@"rect1: %@", NSStringFromCGRect(rect1));
2.如何在navigationviewcontroller中,pop到之前不同的viewcontroller(push过的viewcontroller)?每当我们push到一个viewcontroller时,就会把这个viewcontroller的实例保存到NSArray里,通过array可以获取到任何一个viewcontroller。
NSArray *viewControllers=[self.navigationControllerviewControllers]; UIViewController *controller=[viewControllers objectAtIndex:1]; [self.navigationControllerpopToViewController:controller animated:YES];
3,图片模糊化处理
+(UIImage *)scale:(UIImage *)image toSize:(CGSize)size { UIGraphicsBeginImageContext(size); [image drawInRect:CGRectMake(0, 0, size.width, size.height)]; UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return scaledImage; }
4.如何使用 NSNotificationCenter 在viewcontroller之间进行传值?简单点的来,两个界面间传值,直接上代码了:sendViewcontroller.m
//SettingViewController :接受值的viewcontroller SettingViewController *setting = [[SettingViewController alloc] init]; [[NSNotificationCenter defaultCenter] addObserver:setting selector:@selector(received:) name:@"msetting" object:nil]; NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:@"user",@"type", nil]; [[NSNotificationCenter defaultCenter] postNotificationName:@"msetting" object:dict]; [self.navigationController pushViewController:setting animated:YES]; [setting release];SettingViewController.m(接收值的viewcontroller)
-(void)received:(NSNotification *)notification{ id data = [notification object]; NSLog(@"received data: %@",data); }这样就实现了基本的使用,跟delegate类似,注意 addObserver时,需要写目标viewcontroller的实例,而不是self。
5.通过系统自带的NSPredicate使用正则表达式。(在TextField中)
NSString *regex =[NSString stringWithFormat:@"^1(3[4-9]|5[012789]|8[2378]|47)\\d{8}$"]; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex]; BOOL isMatch = [predicate evaluateWithObject:editPhoneField.text];
6.如何限制UITextField输入长度(监听textField文本变化的事件)1、实现UITextFieldDelegate协议;
2、实现textField:shouldChangeCharactersInRange:replacementString:方法;
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ int kMaxLength = 11; NSInteger strLength = textField.text.length - range.length + string.length; //输入内容的长度 - textfield区域字符长度(一般=输入字符长度)+替换的字符长度(一般为0) return (strLength <= kMaxLength); }如上代码,如果我们简单的这样写: if(range.location<=11) return 或是 if (textfield.text.length>=11) 这样虽然也能限制位数为11位,但是如果通过放大镜把光标切换到之前的位数后,你照样可以输入,并且还会导致输入11位后,键盘上的退格(X键)无法使用,原因是:我们在location到达11位后,返回了NO,键盘无法相应:添加,修改,删除。这是很严重的。所以照着我上面的。方法解读:- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
功能:
把textField中位置为range的字符串替换为string字符串; 此函数在textField内容被修改时调用;
返回值:
YES,表示修改生效;NO,表示不做修改,textField的内容不变。
参数说明:
textField:响应UITextFieldDelegate协议的UITextField控件。
range: UITextField控件中光标选中的字符串,即被替换的字符串;
range.length为0时,表示在位置range.location插入string。
string: 替换字符串; string.length为0时,表示删除。
7.使用ios5.0以后的一个方法自定义table View Cell
UINib *nib = [UINib nibWithNibName:@"TvWeiboCell" bundle:nil]; [tableView registerNib:nib forCellReuseIdentifier:CellIdentifier];
8.获取全局的Delegate对象,这样我们可以调用这个对象的方法和变量
[(MyAppDelegate*)[[UIApplication sharedApplication] delegate] MyMethodOrMyVariable];
9.获取截屏
- (UIImage *)getScreenShot { UIGraphicsBeginImageContext(self.view.bounds.size); [self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return image; }
10.货币格式转方法一:
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; [numberFormatter setGroupingSeparator:@","]; [numberFormatter setGroupingSize:3]; [numberFormatter setUsesGroupingSeparator:YES]; [numberFormatter setDecimalSeparator:@"."]; [numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle]; [numberFormatter setMaximumFractionDigits:2]; NSString *theString = [numberFormatter stringFromNumber:[NSNumber numberWithDouble:1008977.72]];方法二:
-(NSString*)showPrice:(NSString*)price { NSMutableString* price1 =[[NSMutableString alloc]initWithString: price]; if (price.length>3) { for (int i=0; i<(price.length-1)/3; i++) { [price1 insertString:@"," atIndex:(price.length -(i+1)*3)]; } } return price1; }
11.ios 禁用多个按钮同时按下的效果(解决bug) 把那些不能同时点下的按钮或者视图设置一下即可: [view setExclusiveTouch:YES];
12.打乱数组元素的顺序
-(void)Shuffle:(NSMutableArray*) arr { for (int i = 0; i < arr.count; ++i) { int n = (arc4random() % arr.count - i) + i; [arr exchangeObjectAtIndex:i withObjectAtIndex:n]; } }可以把它弄成数组的类目。本文出自 “破虏的冬天” 博客,请务必保留此出处http://chenpolu.blog.51cto.com/4292751/1335781
相关文章推荐
- iOS 开发中一些常用到的代码/方法总结
- 关于iOS开发证书的一些总结(很有用)
- iOS开发中一些有用的小代码
- iOS开发中一些有用的小代码
- iOS开发中一些有用的小代码
- iOS开发中一些有用的小代码(持续更新)
- iOS开发中一些有用的小代码
- 关情纸尾-----关于最近学习iOS开发的一些总结(一)
- 收藏的25个非常有用的CSS代码片段,在你开发基于CSS的网站时,这些代码是经常用到的,比方说一些特殊的效果,圆角边框,CSS透明度,梯形环绕,CSS小三角等,希望对你有用
- iOS开发中一些有用的小代码
- iOS开发中一些有用的小代码
- IOS开发(31)之关于self.用法的一些总结(转载)
- iOS开发中一些有用的小代码
- iOS开发中一些有用的小代码
- 关于iOS开发证书的一些总结(很有用)
- iOS开发中一些有用的小代码
- iOS开发中一些有用的小代码
- ios SDK开发之关于CoreAnimation的一些注意点总结
- iOS 代码开发的小技巧(在别人博客的继承上添加一些方法)
- android应用开发及系统有用代码片段总结