将NSString字符串去掉前后空格:
NSString stringByTrimmingCharacte rsInSet:[NSCharacterSet whitespaceCharacterSet]
获取颜色的值:
UIColor *uicolor = [UIColor redColor];
CGColorRef color = [uicolor CGColor];
int numComponents = CGColorGetNumberOfCompon ents(color);
if (numComponents >= 3)
{
const CGFloat *tmComponents = CGColorGetComponents(color);
red = tmComponents[0];
green = tmComponents[1];
blue = tmComponents[2];
alpha = tmComponents[3];
}
产生随机数(0-1之间):
(float)(1+arc4random()% 99)/100
读取一个url返回数据:
- (NSString *) urlString:(NSString *)value{
NSURL *url = [NSURL URLWithString:value];
NSData *data = [NSData dataWithContentsOfURL:url];
//解决中文乱码,用GBK
NSStringEncoding enc =
CFStringConvertEncodingT oNSStringEncoding(kCFStringEncodingGB_18030_2000);
NSString *retStr = [[NSString alloc] initWithData:data encoding:enc];
return retStr;
}
NSArray数组的比较器:
由于此方法是c方法,所以应该写再@end后面或者@implementation前面。
如果写在@implementation前面的话,就不需要声明了,如果写在@end前面的话,得在头文件声明
或者@implementation前面声明此方法。
方法:
NSInteger intSort(id num1, id num2, void *context)
{
int v1 = [num1 intValue];
int v2 = [num2 intValue];
if (v1 < v2)
return NSOrderedAscending;
else if (v1 > v2)
return NSOrderedDescending;
else
return NSOrderedSame;
}
调用:
NSArray *sortedArray;
sortedArray = [anArray sortedArrayUsingFunction :intSort context:NULL];
手工绑定按钮单击事件:
- (void)addTarget:(id)target action:(SEL)action forControlEvents:
(UIControlEvents)controlEvents;
创建一个plist文件:
NSMutableDictionary *currencyDictionary = [[NSMutableDictionary alloc] init];
NSArray *paths = NSSearchPathForDirectori esInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *path=[paths objectAtIndex:0];
NSString *fileName=[path stringByAppendingPathCom ponent:@"currency.plist"];
[currencyDictionary writeToFile:fileName atomically:YES];
添加动画代码:
- [UIView beginAnimations:@"View Flip" context:nil];
- [UIView setAnimationDuration:1.25];
- [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
- [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view.superview cache:YES];
- [self.view removeFromSuperview];
- [UIView commitAnimations]
navigationItem添加leftBarButtonItem
UIBarButtonItem *uibar1 = [[UIBarButtonItem alloc] initWithCustomView:controllerName];
self.navigationItem.rightBarButtonItem = uibar1;
[uibar1 release];
UITabBarController添加TabBarItem
切换view的两种方式:
1.presentModalViewController: animated: And
dismissModalViewControllerAnimated:
(注:
缺点: 此切换方法将取代整个大view.例如:tabBarController就能被取代。
优点: 此切换方法可以没有NavigationController的支持
)
SecondController *second = [[SecondController alloc] init];
[self presentModalViewController:second animated:YES];
[self dismissModalViewControllerAnimated:YES];
2.pushViewController: animated: And
popViewControllerAnimated:
(注:
缺点:此切换方法必须有NavigationController的支持
优点:此切换方法不能取代整个大view.例如:tabBarController就不能被取代。
)
ThirdController *third = [[ThirdController alloc] init];
[self.navigationController pushViewController:third animated:YES];
[self.navigationController popViewControllerAnimated:YES];
消息提示框使用:
文件进行操作:
// 获取当前目录下得Currency.plist文件路径
NSString *locationPath = [[NSBundle mainBundle] pathForResource:@"Currency" ofType:@"plist"];
// 获取沙盒得路径
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *strCopyPath = [paths objectAtIndex:0];
// 将路径和取得得文件名组合成一个新路径
NSString *strPath = [strCopyPath stringByAppendingPathComponent:@"Currency.plist"];
// 文件管理
NSFileManager *man = [NSFileManager defaultManager];
NSError *error = nil ;
// 开始复制
[man copyItemAtPath:locationPath toPath:strPath error:&error];
[man release];
// 获取 strCopyPath 路径下的文件数组
NSArray *array = [man contentsOfDirectoryAtPath:strCopyPath error:nil];
[array count];
调用GPS位置:
导入#import
CLLocationManager *clLocationManager = [[CLLocationManager alloc] init];
[clLocationManager setDesiredAccuracy:kCLLocationAccuracyBest];
[clLocationManager setDelegate:self]; // deldegate
[clLocationManager startUpdatingLocation];
[clLocationManager release];
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
[manager stopUpdatingLocation]; // 停止执行此方法
newLocation.coordinate.longitude; // 获取当前的经度
newLocation.coordinate.latitude; // 获取当前的纬度
}
获取UUID的值:
CFUUIDRef uuidObj = CFUUIDCreate(nil);
NSString *uuidString = (NSString *)CFUUIDCreateString(nil, uuidObj);
CFRelease(uuidObj); // uuidString就是唯一得了
[uuidString release];
ico图标有弧线:
例如这种,系统默认的是带ico图标中间带弧线。
不加弧线的方法:
在****-info.plist中添加一项:Icon already includes gloss effects 然后value的多选筐勾选住。
ico图标大小:
1.iPhone -- 57*57
2.iPhone4 -114*114
3.iPad --72*72
#pragma mark 获得时间戳
- (NSString *)_generateTimestamp
return [NSString stringWithFormat:@"%d", time(NULL)];
#pragma mark 获得随时字符串
- (NSString *)_generateNonce {
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
NSMakeCollectable(theUUID);
return (NSString *)string;
}
#pragma mark textView控件编辑完后键盘隐藏
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if([text isEqualToString:@"n"]) {
[textView resignFirstResponder];
return NO;
}
return YES;
}
#pragma mark iphone 4 摄像头是前后切换
#import
// Switching between front and back cameras
- (AVCaptureDevice *)cameraWithPosition:(AVCaptureDevicePosition)position
{
NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
for ( AVCaptureDevice *device in devices )
if ( device.position == position )
return device;
return nil;
}
- (void)swapFrontAndBackCameras {
// Assume the session is already running
NSArray *inputs = self.session.inputs;
for ( AVCaptureDeviceInput *input in inputs ) {
AVCaptureDevice *device = input.device;
if ( [device hasMediaType:AVMediaTypeVideo] ) {
AVCaptureDevicePosition position = device.position;
AVCaptureDevice *newCamera = nil;
AVCaptureDeviceInput *newInput = nil;
if (position == AVCaptureDevicePositionF ront)
newCamera = [self cameraWithPosition:AVCaptureDevicePositionB ack];
else
newCamera = [self cameraWithPosition:AVCaptureDevicePositionF ront];
newInput = [AVCaptureDeviceInput deviceInputWithDevice:newCamera error:nil];
// beginConfiguration ensures that pending changes are not applied immediately
[self.session beginConfiguration];
[self.session removeInput:input];
[self.session addInput:newInput];
// Changes take effect once the outermost commitConfiguration is invoked.
[self.session commitConfiguration];
break;
}
}
}
# 存储选择的图片到沙盒中
NSArray *pathArray = NSSearchPathForDirectori esInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSData *imageData = UIImagePNGRepresentation ([info objectForKey:UIImagePickerControllerO riginalImage]);
CFUUIDRef uuidObj = CFUUIDCreate(nil);
NSString *uuidString = (NSString *)CFUUIDCreateString(nil, uuidObj);
CFRelease(uuidObj);
self.pAddress = [[pathArray objectAtIndex:0] stringByAppendingPathCom ponent:[NSString stringWithFormat:@"%@.png",uuidString]];
[imageData writeToFile:self.pAddress atomically:YES ];