iOS编程小技巧收集

1、输入字符限制


在开发应用过程中,经常会遇到要限制某个输入框的输入的需求。有这种需求过来,我们的第一反应是定制键盘。之前在开发Android应用中确实是这么干的,具体做法这里就不赘述了。最近在写iPad应用中遇到一个类似的需求:输入框只限制输入数字。尝试过定制数字键盘,但是在iPad上定制数字键盘,除了能输入数字还能输入其他非数字字符,所以这个方法在这里行不通。所以有了下面的做法:

#define NUMBERS @"0123456789\n"

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:NUMBERS]invertedSet];
    NSArray * temp = [string componentsSeparatedByCharactersInSet:cs];
    NSString * filtered = [temp componentsJoinedByString:@""];
    return [string isEqualToString:filtered];
}

代码实现比较简单,这里不再赘述。我这里是限制TextField只能输入数字,如果还需要限制其它字符直接修改宏定义即可。


2、NavigationBar 透明


[self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;


3、ALAssetsLibrary

a、获取ALAsset

The lifetimes of objects you get back from a library instance are tied to the lifetime of the library instance.

通过ALAssetsLibrary对象获取的其他对象只在该ALAssetsLibrary对象生命期内有效,若ALAssetsLibrary对象被销毁,则其他从它获取的对象将不能被访问,否则有会错误。

invalid attempt to access ALAssetPrivate past the lifetime of its owning ALAssetsLibrary


b、删除ALAsset

ALAssetsLibrary只提供了保存ALAsset对象的方法,没有提供删除的方法。我们可以通过下面的方式达到删除的目的:

[asset setImageData:nil metadata:nil completionBlock:NULL];
 并且在iOS中,只能删除自己应用创建的相册里面的ALAsset。




你可能感兴趣的:(iOS编程小技巧收集)