ios的常用的一些方法


1NSCalendar用法 

  -(NSString *) getWeek:(NSDate *)d

  {

  NSCalendar *calendar = [[NSCalendar alloc]

  initWithCalendarIdentifier:NSGregorianCalendar];

  unsigned units = NSYearCalendarUnit | NSMonthCalendarUnit |

  NSDayCalendarUnit | NSWeekCalendarUnit;

  NSDateComponents *components = [calendar components:units

  fromDate:d];

  [calendar release];

  switch ([components weekday]) {

  case1:

  return @"Monday"; break;

  case2:

  return @"Tuesday"; break;

  case3:

  return @"Wednesday"; break;

  case4:

  return @"Thursday"; break;

  case5:

  return @"Friday"; break;

  case6:

  return @"Saturday"; break;

  case7:

  return @"Sunday"; break;

  default:

  return @"NO Week"; break;

  }

  NSLog(@"%@",components); 

  }

  2、将网络数据读取为字符串

  -(NSString *)getDataByURL:(NSString *)url {

  return [[NSString alloc] initWithData:[NSData dataWithContentsOfURL: [NSURL URLWithString:[url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]] encoding:NSUTF8StringEncoding];

  }

  3、读取 络图

  -(UIImage *)getImageByURL:(NSString *)url {

  return [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL: [NSURL URLWithString:[url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]]];

  }

  4、多线程(这种方式,只管建立线程,不管回收线程)

  [NSThread detachNewThreadSelector:@selector(scheduleTask) toTarget:self withObject:nil];

  -(void)scheduleTask

  {

  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

  [pool release]; 

  }

  如果有参数,则这么

  [NSThread detachNewThreadSelector:@selector(scheduleTask:) toTarget:self withObject:[NSDate date]];

  -(void)scheduleTask:(NSDate *)mdate

  {

  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

  [pool release]; }

  在线程 主线程

  [self performSelectorOnMainThread:@selector(moveToMain) withObject:nil waitUntilDone:FALSE];

  5 户缺省值NSUserDefaults读取:

  NSUserDefaults *df = [NSUserDefaults standardUserDefaults];

  NSArray *languages = [df objectForKey:@"AppleLanguages"]; 

  NSLog(@"all language is %@",languages);

  NSLog(@"index is %@",[languages objectAtIndex:0]);

  NSLocale *currentLocale = [NSLocale currentLocale];

  NSLog(@"language Code is %@",[currentLocale objectForKey:NSLocaleLanguageCode]); 

  NSLog(@"Country Code is %@",[currentLocale objectForKey:NSLocaleCountryCode]);

  6view之间转换的动态效果设置

  SecondViewController *secondViewController = [[SecondViewController alloc] init];

  secondViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;// 水平翻转

  [self.navigationController presentModalViewController:secondViewController animated:YES];

  [secondViewController release];

  7UIScrollView 滑动用法: -(void)scrollViewDidScroll:(UIScrollView *)scrollView

  {

  NSLog(@"正在滑动中。。")

  }

  // 户直接滑动UIScrollView,可以看到滑动条

  -(void)scrollViewDidEndDelerating:(UIScrollView *)scrollView {

  }

  //通过其他控件触发UIScrollView滑动,看不到滑动条

  -(void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {

  }

  //UIScrollView 设置滑动不超出本 身范围

  [scrollView setBounces:NO]; 

  8iphone的系统目录:

  //得到Document:目录

  NSArray *paths =

  NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

  NSString *documentsDirectory = [paths objectAtIndex:0];

  //得到temp临时目录

  NSString *temPath = NSTemporaryDirectory();

  //得到目录上的文件地址

  NSString *address = [paths stringByAppendingPathComponent:@"1.rtf"];

  9、状态栏显 indicator

  [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

  10app Icon显示数字:

  - (void)applicationDidEnterBackground:(UIApplication *)application

  {

  [[UIApplication sharedApplication] setApplicationIconBadgeNumber:5];

  }

  11sqlite保存地址:

  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectoryNSUserDomainMask, YES);

  NSString *thePath = [paths objectAtIndex:0];

  NSString *filePath = [thePath stringByAppendingPathComponent:@"kilometer.sqlite"];

  NSString *dbPath = [[[NSBundle mainBundle] resourcePathstringByAppendingPathComponent:@"kilometer2.sqlite"];

  12、键盘弹出隐藏,textfield变位置

  _tspasswordTF = [[UITextField alloc] initWithFrame: CGRectMake(100,

  150, 260, 30)];

  _tspasswordTF.backgroundColor = [UIColor redColor];

  _tspasswordTF.tag = 2;

  /*

  Use this method to release shared resources, save user data,

  _tspasswordTF.delegate = self;

  [self.window addSubview: _tspasswordTF];

  - (void)textFieldDidBeginEditing:(UITextField *)textField {

  [self animateTextField: textField up: YES]; 

  }

  - (BOOL)textFieldShouldReturn:(UITextField *)textField {

  [self animateTextField: textField up: NO]; 

  [textField resignFirstResponder];

  return YES;

  }

  - (void) animateTextField: (UITextField*) textField up: (BOOL) up {

  const int movementDistance = 80; 

  // tweak as needed 

  const float movementDuration = 0.3f; 

  // tweak as needed

  int movement = (up -movementDistance : movementDistance);

  [UIView beginAnimations: nil context: nil]; [UIView setAnimationBeginsFromCurrentState: YES]; [UIView setAnimationDuration: movementDuration];

  self.window.frame = CGRectOffset(self.window.frame, 0, movement);

  [UIView commitAnimations]; 

  }

  13、获取图片的尺

  CGImageRef img = [imageView.image CGImage]; 

  NSLog(@"%d",CGImageGetWidth(img)); 

  NSLog(@"%d",CGImageGetHeight(img));

  14AlertView,ActionSheetcancelButton点击事件:

  - (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex: (NSInteger)buttonIndex; // before animation and hiding view

  {

  NSLog(@"cancel alertView... buttonindex = %d",buttonIndex); // 用户按下Cancel按钮

  if (buttonIndex == [alertView cancelButtonIndex]){

  exit(0); 

  }

  }

  - (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex

  {

  NSLog(@"%s %d button = %d cancel actionSheet.....",__FUNCTION__,__LINE__, buttonIndex);

  // 用户按下Cancel按钮

  if (buttonIndex == [actionSheet cancelButtonIndex]) {

  exit(0);

  

  }

  15、给window设置全局背景图片

  self.window.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@""]];

  16tabcontroller随意切换tabbar

  -(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 

  或者

  -(BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController

  或者

  _tabBarController.selectedIndex = tabIndex;

  17、计算字符串 :

  CGFloat w = [title sizeWithFont:[UIFont fontWithName:@"Arial" size: 18]].width;

  18、计算点到线段的最短距离

  根据结果坐标使 CLLocation类的函数计算实际距离。 double

  x1, y1, x2, y2, x3, y3;

  double px =x2 -x1;

  double py = y2 -y1;

  double som = px *px + py *py;

  double u =((x3 - x1)*px +(y3 - y1)*py)/som; if(u > 1)

  { u=1; }

  if (u < 0) { u =0;

  }

  //the closest point

  double x = x1 + u *px; double y = y1 + u * py; double dx = x - x3; double dy = y - y3;

  double dist = sqrt(dx*dx + dy*dy);

  19UISearchBar背景透明 

  在使用UISearchBar,将背景 设定为clearColor,或者将translucent设为YES,

  不能使背景透明,经过一番研究,发现了一种超级简单和实用的 :

  [[searchbar.subviews objectAtIndex:0] removeFromSuperview];

  背景完全消除了,只剩下搜索框本身了。

  20、图像与缓存 :

  UIImageView *wallpaper = [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"icon.png"]]; // 会缓存图片

  UIImageView *wallpaper = [[UIImageView alloc] initWithImage: [UIImage imageWithContentsOfFile:@"icon.png"]]; // 不会缓存图

  21iphone对视图层的操作

  // textView的边框设置为圆角

  _textViernerRadius = 8;

  _textView.layer.masksToBounds = YES;

  //textView添加一个有色边框

  _textView.layer.borderWidth = 5;

  _textView.layer.borderColor = [[UIColor colorWithRed:0.52 green:0.09

  blue:0.07 alpha:1] CGColor]; 

  //textView添加背景图片

  _textVientents = (id)[UIImage imageNamed:@"31"].CGImage;

  22、关闭当前应用

  [[UIApplication sharedApplication] performSelector:@selector(terminateWithSuccess)];

  23、给iPhone程序添加欢迎界面

  1、将你需要的欢迎界面的图片,存成Default.png 

  [NSThread sleepForTimeInterval:10.0]; 这样欢迎页面就停留10秒后消失了。

  24NSString NSDate转换

  NSString* myString= @"testing";

  NSData* data=[myString dataUsingEncoding: [NSString defaultCStringEncodi ng]];

  NSString* aStr =

  [[NSString alloc] initWithData:aData encoding:NSASCIIStringEncoding];

  25UIWebView中的dataDetectorTypes 

  如果你希望在浏览页面时,页面上的电话号码显示成链接形式,点击电话号码就拨打电话,这时你就需要用到dataDetectorTypes了。

  NSURL *url = [NSURL URLWithString:@";]; 

  NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; webView.dataDetectorTypes = UIDataDetectorTypePhoneNumber; 

  [webView loadRequest:requestObj];

  26、打开苹果电脑浏览器的代码

  如您想在 Mac 软件中集成一键打开浏览器功能,可以使用以下代码

  [[NSWorkspace sharedWorkspace] openURLs: urls withAppBundleIdentifier:@"com.apple.Safari"

  options: NSWorkspaceLaunchDefault additionalEventParamDescriptor: NULL launchIdentifiers: NULL];

  27、设置StatusBar以及NavigationBar的样式

  [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleBlackOpaque; self.navigationController.navigationBar.barStyle = UIBarStyleBlack;

  28、隐藏Status Bar 你可能知道一个简易的方法,那就是在程序的viewDidLoad中加入以下代码:

  [UIApplication sharedApplication].statusBarHidden = YES; 

  此法可以隐藏状态条,但问题在于,状态条所占空间依然无法为程序所用。

  本篇介绍的方法依然简单,但更为奏效。通过简单的3个步骤,plist中加入一 个键值来实现。

  1. 点击程序的Info.plist

  2. 右键点击任意一处,选择Add Row

  3. 加入的新键值,命名为UIStatusBarHidden或者Status bar is initially hidden,然后选上这一项。

  29、产生随机数的最佳方案

  arc4random()会返回一个整型数,因此,返回1100的随机数可以这样写

  arc4random()%100 + 1;

  30string char转换 

  NSString *cocoaString = [[NSString alloc] initWithString:@"MyString"];

  const char *myCstring = [cocoaString cString];

  const char *cString = "Hello";

  NSString *cocoString = [[NSString alloc] initWithCString:cString];

  31、用UIWebView在当前程序中打开网页 如果URL中带中文的话,必须将URL中的中文转成URL形式的才行。

  NSString *query = [NSString stringWithFormat:@" "];

  NSString *strUrl = [query stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

  NSURL *url = [NSURL URLWithString:strUrl];

  NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 

  [webView loadRequest:requestObj];

  32、阻止ios设备锁屏 

  [[UIApplication sharedApplication] setIdleTimerDisabled:YES];

  或 

  [UIApplication sharedApplication].idleTimerDisabled = YES; 

  33、一条命令卸载Xcode iPhone SDK

  sudo /Developer/Library/uninstall-devtools --mode=all

  34、获取按钮的title

  -(void)btnPressed:(id)sender {

  NSString *title = [sender titleForState:UIControlStateNormal]; 

  NSString *newText = [[NSString alloc] initWithFormat:@"%@",title]; 

  label.text = newText;

  [newText release]; 

  }

  35NSDate to NSString

  NSString *dateStr = [[NSString alloc] initWithFormat:@"%@", date];

  或者

  NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

  [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

  NSString *strDate = [dateFormatter stringFromDate:[NSDate date]];

  NSLog(@"%@", strDate); 

  [dateFormatter release];

  36、图片由小到大缓慢显示的效果

  UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];

  [imageView setImage:[UIImage imageNamed:@"4.jpg"]]; 

  self.ANImageView = imageView;

  [self.view addSubview:imageView];

  [imageView release];

  CGContextRef context = UIGraphicsGetCurrentContext(); 

  [UIView beginAnimations:nil context:context];

  [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 

  [UIView setAnimationDuration:2.5];

  CGImageRef img = [self.ANImageView.image CGImage];

  [ANImageView setFrame:CGRectMake(0, 0, CGImageGetWidth(img), CGImageGetHeight(img))];

  [UIView commitAnimations]; 

  NSLog(@"%lu",CGImageGetWidth(img));

  NSLog(@"%lu",CGImageGetHeight(img));

  37、数字转字符串

  NSString *newText = [[NSString alloc] initWithFormat:@"%d",number]; 

  numberlabel.text = newText;

  [newText release];

  38、随机函数arc4random() 的使用.

  在iPhone,RAND_MAX0x7fffffff (2147483647),arc4random()返回的 最大值则是 0x100000000 (4294967296),从而有更好的精度。使用 arc4random()还不需要生成随机种子,因为第一次调用的时候就会自动生成。

  如:

  arc4random() 来获取0100之间浮点数

  #define ARC4RANDOM_MAX 0x100000000

  double val = floorf(((double)arc4random() / ARC4RANDOM_MAX) * 100.0f);

  1. self.view.backgroundColor = [UIColor colorWithHue: arc4random() % 2 55 / 255

  2. 3. 4.

  saturation: arc4random() % 2 brightness: arc4random() % 2

  alpha: 1.0];

  39、改变键盘颜色的实现

  iPhoneiPod touch的键盘颜色其实是可以通过代码更改的,这样能更匹配 App的界面风格,下面是改变iPhone键盘颜 色的代码。

  -(void)textFieldDidBeginEditing:(UITextField *)textField {

  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:@"UIPeripheralHostView"])

  {

  v.backgroundColor = [UIColor blueColor];

  } }

  } }

  55 / 255 55 / 255

  _textField.keyboardAppearance = UIKeyboardAppearanceAlert;//有这个设置属性 才起作用

  40iPhone上实现Default.png动画 添加一张和Default.png 一样的图片,对这个图片进行动画,从而实现Default动画的渐变消 失的效果。

  UIImageView *splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];

  splashView.image = [UIImage imageNamed:@"Default.png"];

  [self.window addSubview:splashView];

  [self.window bringSubviewToFront:splashView];

  [UIView beginAnimations:nil context:nil];

  [UIView setAnimationDuration:2.0];

  [UIView setAnimationTransition:UIViewAnimationTransitionNone forView:

  self.window cache:YES];

  [UIView setAnimationDelegate:self];

  [UIView setAnimationDidStopSelector:@selector(startupAnimationDone:finished:cont ext:)];

  splashView.alpha = 0.0;

  splashView.frame = CGRectMake(-60, -85, 440, 635);

  [UIView commitAnimations];

  41、将EGO主题色添加到xcode 打开终端,执行以下命令

  Shell代码

  1. mkdir -p ~/Library/Application\ Support/Xcode/Color\ Themes; 2. cd ~/Library/Application\ Support/Xcode/Color\ Themes;

  3. curl -O

  EGO.xccolortheme

  然后,重启Xcode,选择Preferences > Fonts & Colors,最后从Color Theme 中选择EGO即可。

  42、将图片保存到图片库中

  -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

  UITouch *touch = [touches anyObject]; 

  if ([touch tapCount]== 1)

  {

  UIImageWriteToSavedPhotosAlbum([ANImageView image], nil, nil, nil);

  UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"存储照 message:@"您已将照 存于图片库中,打开照片程序即可查" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];

  [alert show];

  [alert release];

  

  }

  43、读取plist文件

  //取得文件路径

  NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"文件

  名" ofType:@"plist"];

  //读取到一个字典

  NSDictionary *dictionary = [[NSDictionary alloc] initWithContentsOfFile:plistPath];

  //读取到一个数组

  NSArray *array = [[NSArray alloc] initWithContentsOfFile:plistPath];

  44、使用#pragma mark 加上这样的标识后,在导航条上会显示源文件上方法列表,这样就可对功能相关的方法进行分隔,方便查看了。

  设置UITabBarController默认的启动Item //a tabBar

  UITabBarController *tabBarController = [[UITabBarController alloc] init];

  NSArray *controllers = [NSArray arrayWithObjects: nav1, nav2, nav3, nav4, nil];

  tabBarController.viewControllers = controllers; tabBarController.selectedViewController = nav2;

  45NSUserDefaults的使用

  NSUserDefaults *store = [NSUserDefaults standardUserDefaults]; 

  NSUInteger selectedIndex = 1;

  [store setInteger:selectedIndex forKey:@"selectedIndex"];

  if ([store valueForKey:@"selectedIndex"] != nil) {

  NSInteger index = [store integerForKey:@"selectedIndex"]; 

  NSLog(@" 用户已经设置的selectedIndex的值是:%d", index);

  

  else { 

  NSLog(@"请设置默认的值");

  }

  46、更改Xcode的缺省公司名 在终端中执行以下命令:

  defaults write com.apple.Xcode PBXCustomTemplateMacroDefiniti ons '{"ORGANIZATIONNAME" = "COMPANY";}'

  47、设置uiView,成圆角矩形 画个圆角的矩形没啥难的,有两种方法:

  1 。直接修改view的样式,系统提供好的了:

  viernerRadius = 6;

  view.layer.masksToBounds = YES; layer做就可以了,十分简单。这个需要倒库 QuartzCore.framework;

  2. view 里面画圆角矩形 CGFloat radius = 20.0;

  CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetRGBStrokeColor(context, 1.0, 1.0, 1.0, 1);

  CGFloat minx = CGRectGetMinX(rect), midx = CGRectGetMidX(rect), maxx =

  CGRectGetMaxX(rect);

  CGFloat miny = CGRectGetMinY(rect), midy = CGRectGetMidY(rect), maxy =

  CGRectGetMaxY(rect);

  CGContextMoveToPoint(context, minx, midy); CGContextAddArcToPoint(context, minx, miny, midx, miny, radius); CGContextAddArcToPoint(context, maxx, miny, maxx, midy, radius); CGContextAddArcToPoint(context, maxx, maxy, midx, maxy, radius); CGContextAddArcToPoint(context, minx, maxy, minx, midy, radius); CGContextClosePath(context);

  CGContextDrawPath(context, kCGPathFill);

  用画笔的方法,drawRect里面做。

  48、画图时图片倒转解决方法

  CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSaveGState(context);

  CGContextTranslateCTM(context, 0, self.bounds.size.height); CGContextScaleCTM(context, 1, -1);

  drawImage = [UIImage imageNamed:@"12.jpg"];

  CGImageRef image = CGImageRetain(drawImage.CGImage);

  CGContextDrawImage(context, CGRectMake(30.0, 200, 450, 695), image); CGContextRestoreGState(context);

  49Nsstring 自适应文本宽高度

  CGSize feelSize = [feeling sizeWithFont:[UIFont systemFontOfSize:12]

  constrainedToSize:CGSizeMake(190, 200)];

  float feelHeight = feelSize.height;

  50、用HTTP协议,获取网站的HTML数据:

  [NSString stringWithContentsOfURL:[NSURL URLWithString:@";]];

  51viewDidLoad中设置按钮图案

  UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];

  button.frame = CGRectMake(0, 0, 60, 30);

  [button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];

  [self.view addSubview:button];

  UIImage *buttonImageNormal = [UIImage imageNamed:@"huifu-001.png"];

  UIImage *stretchableButtonImageNormal = [buttonImageNormal

  stretchableImageWithLeftCapWidth:12 topCapHeight:0];

  [button setBackgroundImage:stretchableButtonImageNormal forState:UIControlStateNormal]; UIImage *buttonImagePressed = [UIImage imageNamed:@"qyanbuhuifu-001.png"];

  UIImage *stretchableButtonImagePressed = [buttonImagePressed stretchableImageWithLeftCapWidth:12 topCapHeight:0]; 

  [button setBackgroundImage:stretchableButtonImagePressed forState:UIControlStateHighlighted];

  52、键盘上的return键改成Done: textField.returnKeyType = UIReturnKeyDone;

  53textfield设置成为密码框: [textField_pwd setSecureTextEntry:YES];

  54、收回键盘: [textField resignFirstResponder]; 或者 [textfield addTarget:self action:@selector(textFieldDone:) forControlEvents:UIControlEventEditin gDidEndOnExit];

  55、振动:

  #import<AudioToolbox/AudioToolbox.h> //需加头文件

  方法一: AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);

  方法二: AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); 当设备不支持方法一函数时,起蜂鸣作用, 而方法二支持所有设备

  56、用Cocoa删除文件:

  NSFileManager *defaultManager = [NSFileManager defaultManager]; 

  [defaultManager removeFileAtPath: tildeFilename  handler: nil];

  57UIView透明渐变与移动效果:

  //动画配制开始

  [UIView beginAnimations:@"animation" context:nil]; [UIView setAnimationDuration:2.5];

  //图片上升动画

  CGRect rect = imgView.frame ;

  rect.origin.y = 30;

  imgView.frame = rect;

  //半透明度渐变动画

  imgView.alpha = 0;

  //提交动画

  [UIView commitAnimations];

  58、在UIViewdrawRect方法内,Quartz2D API绘制一个像素宽的水平直线

  -(void)drawRect:(CGRect)rect{

  //获取图形上下文

  CGContextRef context = UIGraphicsGetCurrentContext(); //设置图形上下文的路径绘制颜色 CGContextSetStrokeColorWithColor(context, [UIColor

  whiteColor].CGColor); //取消防锯齿

  CGContextSetAllowsAntialiasing(context, NO); //添加线

  CGContextMoveToPoint(context, 50, 50); 

  CGContextAddLineToPoint(context, 100, 50); //绘制

  CGContextDrawPath(context, kCGPathStroke); }

  59、用UIWebView加载:

  UIWebView *web = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];

  [web loadRequest:[NSURLRequest requestWithURL: [NSURL URLWithString:@";]]];

  [self.view addSubview:web]; 

  [web release];

  60、利用UIImageView实现动画:

  - (void)viewDidLoad {

  [super viewDidLoad];

  UIImageView *fishAni=[[UIImageView alloc] initWithFrame: [[UIScreen mainScreen] bounds]];

  [self.view addSubview:fishAni];

  [fishAni release];

  //设置动画帧

  fishAni.animationImages=[NSArray arrayWithObjects: [UIImage imageNamed:@"1.jpg"],

  [UIImage imageNamed:@"2.jpg"],

  [UIImage imageNamed:@"3.jpg"],

  [UIImage imageNamed:@"4.jpg"],

  [UIImage imageNamed:@"5.jpg"],nil ];

  //设置动画总时间 fishAni.animationDuration=1.0;

  //设置重复次数,0表示不重复 fishAni.animationRepeatCount=0;

  //开始动画

  [fishAni startAnimating]; }

  61、用NSTimer做一个定时器,每隔1秒执行一次 pressedDone; 

  -(IBAction)clickBtn:(id)sender{

  NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(printHello) userInfo:nil repeats:YES]; 

  [timer fire];

  }

  62、利用苹果机里的相机进行录像:

  -(void) choosePhotoBySourceType: (UIImagePickerControllerCameraCaptureMode) sourceType {

  m_imagePickerController = [[[UIImagePickerController alloc] init] autorelease];

  m_imagePickerController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;

  m_imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera; m_imagePickerController.cameraDevice =UIImagePickerControllerCameraDeviceFront; 

  //m_imagePickerController.cameraCaptureMode =UIImagePickerControllerCameraCaptureModeVideo;

  NSArray *sourceTypes = [UIImagePickerController availableMediaTypesForSourceType:m_imagePickerController.sourceType];

  if ([sourceTypes containsObject:(NSString *)kUTTypeMovie ]) {

  m_imagePickerController.mediaTypes= [NSArray arrayWithObjects: (NSString *)kUTTypeMovie,(NSString *)kUTTypeImage,nil];

  }

  // m_imagePickerController.cameraCaptureMode = sourceType; //m_imagePickerController.mediaTypes //imagePickerController.allowsEditing = YES;

  [self presentModalViewController: m_imagePickerController animated:YES];

  }

  -(void) takePhoto {

  if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])

  {

  [self choosePhotoBySourceType:nil];

  } }

  // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.

  - (void)viewDidLoad {

  [super viewDidLoad];

  UIButton *takePhoto = [UIButton

  buttonWithType:UIButtonTypeRoundedRect];

  [takePhoto setTitle:@"录像" forState:UIControlStateNormal];

  [takePhoto addTarget:self action:@selector(takePhoto) forControlEvents:UIControlEventTouchUpInside]; 

  takePhoto.frame = CGRectMake(50,100,100,30); [self.view addSubview:takePhoto];

  }

  63App中调用 iPhonehome + 电源键截屏功能 

  // 前置声明是消除警告

  CGImageRef UIGetScreenImage();

  CGImageRef img = UIGetScreenImage();

  UIImage* scImage=[UIImage imageWithCGImage:img]; UIImageWriteToSavedPhotosAlbum(scImage, nil, nil, nil);

  64、切割图片的方法

  //切割图片

  UIImage *image = [UIImage imageNamed:@"7.jpg"];

  //设置需要截取的

  CGRect rect = CGRectMake(20, 50, 280, 200);

  //转换

  CGImageRef imageRef = image.CGImage;

  //截取函数

  CGImageRef imageRefs = CGImageCreateWithImageInRect(imageRef, rect); 

  //生成uIImage

  UIImage *newImage = [[UIImage alloc] initWithCGImage:imageRefs]; 

  //添加到imageView

  imageView = [[UIImageView alloc] initWithImage:newImage]; 

  imageView.frame = rect;

  65、如何屏蔽父viewtouch事件

  -(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event

  {

  CGMutablePathRef path = CGPathCreateMutable(); CGPathMoveToPoint(path,NULL,0,0);

  CGRect rect = CGRectMake(0, 100, 320, 40); CGPathAddRect(path, NULL, rect); if(CGPathContainsPoint(path, NULL, point, NO)) {

  [self.superview touchesBegan:nil withEvent:nil]; }

  CGPathRelease(path);

  return self; 

  }

  66、用户按home键推送通知

  UIApplication *app = [UIApplication sharedApplication]; 

  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(pressHome:) name:UIApplicationDidEnterBackgroundNotification object:app];

  -(void)pressHome:(NSNotification *)notification {

  NSLog(@"pressHome..."); 

  }

  67、在UIImageView中旋转图像:

  float rotateAngle = M_PI; //M_PI为一角度

  CGAffineTransform transform =CGAffineTransformMakeRotation(rotateA ngle);

  imageView.transform = transform;

  68、隐藏状态栏:

  方法一, [UIApplication sharedApplication] setStatusBarHidden:YES animated:NO]; 

  方法二, 在应用程序的Info.plist 文件中将 UIStatusBarHidden 设置为YES; 

  69、构建多个可拖动视图:

  @interface DragView: UIImageView{

  CGPoint startLocation;

  NSString *whichFlower; }

  @property (nonatomic ,retain)NSString *whichFlower; @end

  @implementation DragView

  @synthesize whichFlower;

  - (void) touchesBegan:(NSSet *)touches withEvent: (UIEvent *)event{ CGPoint pt = [[touhes anyObject ] locationInView:self]; startLocation = pt;

  [[self superview] bringSubviewToFront:self];

  }

  - (void) touchesMoved:(NSSet *)touches withEvent:( UIEvent *)event{

  CGPoint pt = [[touches anyObject] locatonInView:self]; CGRect frame = [self frame];

  frame.origin.x += pt.x – startLocation.x;

  frame.origin.y += pt.y - startLocation.y;

  [self setFrame:frame]; }

  @end

  @interface TestController :UIViewController{

  UIView *contentView;

  }

  @end

  @implementation TestController

  #define MAXFLOWERS 16

  CGPoint randomPoint(){ 

  return CGPointMake(random()%6 , random()96);

  }

  - (void)loadView{

  CGRect apprect = [[UIScreen mainScreen] applicationFrame]; 

  contentView = [[UIView alloc] initWithFrame :apprect]; 

  contentView.backgroundColor = [UIColor blackColor]; 

  self.view = contentView;

  [contentView release];

  for(int i=0 ; i<MAXFLOWERS; i++){

  CGRect dragRect = CGRectMake(0.0f ,0.0f, 64.0f ,64.0f); 

  dragRect.origin = randomPoint();

  DragView *dragger = [[DragView alloc] initWithFrame:dragRect];

  [dragger setUserInteractionEnabled: YES];

  NSString *whichFlower = [[NSArray arrayWithObjects:@”blueFlower.png”,@”pinkFlower.png”,nil] objectAtIndex: ( random() %2)];

  [dragger setImage:[UIImage imageNamed:whichFlower]]; 

  [contentView addSubview :dragger];

  [dragger release];

  } }

  - (void)dealloc{

  [contentView release];

  [super dealloc]; 

  }

  @end

  70iPhone中加入dylib

  加入dylib库时,必须在info中加入头文件路径。/usr/include/库名(不要后缀)

  71iPhone iPad App名字如何支持多语言和显示自定义名字

  建立InfoPlist.strings,本地化此文件,然后在文件内添加: CFBundleDisplayName = "xxxxxxxxxxx"; //

  这样应 用程序就能显示成设置的名字“xxxxxxxxxxx”. 

  72、在数字键盘上添加button:

  //定义一个消息中心

  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; 

  //addObserver:注册一个观察员 name:消息名称

  - (void)keyboardWillShow:(NSNotification *)note {

  // create custom button

  UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeCustom];

  doneButton.frame = CGRectMake(0, 163, 106, 53);

  [doneButton setImage:[UIImage imageNamed:@"5.png"]

  forState:UIControlStateNormal];

  [doneButton addTarget:self action:@selector(addRadixPoint) forControlEvents:UIControlEventTouchUpInside];

  // locate keyboard view

  UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];

  //返回应用程序window

  UIView* keyboard;

  for(int i=0; i<[tempWindow.subviews count]; i++) 

  //遍历window上的所有 subview

  {

  keyboard = [tempWindow.subviews objectAtIndex:i];

  // keyboard view found; 

  add the custom button to it 

  if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES) 

  [keyboard addSubview:doneButton];

  

  }

  73、去掉iPhone应用图标上的弧形高光 有时候我们的应用程序不需要在图标上加上默认的高光,可以在你的应用的 Info.plist中加入:

  Icon already includes gloss effects YES

  74、实现修改navigationback按钮 

  self.navigationItem.backBarButtonItem =

  [[[UIBarButtonItem alloc] initWithTitle: NSLocalizedStringFromTable (@"返回", @"System", nil) style:UIBarButtonItemStyleBordered target:nil action:nil] autorelease];

  75、给图片加上阴影

  UIImageView*pageContenterImageView = [[UIImageView alloc]initWithImage: [UIImage imageNamed:@"onePageApple.png"]];

  //添加边框

  CALayer*layer = [pageContenterImageView layer];

  layer.borderColor= [[UIColor whiteColor]CGColor];

  layer.borderWidth=0.0f;

  //添加四个边阴影

  pageContenterImageView.layer.shadowColor= [UIColor blackColor].CGColor;

  pageContenterImageView.layer.shadowOffset=CGSizeMake(0,0); pageContenterImageView.layer.shadowOpacity=0.5; pageContenterImageView.layer.shadowRadius=5.0; 阴影渲染会严重消耗内存 ,导致程序咔叽.

  /*阴影效果*/

  //添加边框

  CALayer*layer = [self.pageContenter layer];

  layer.borderColor= [[UIColorwhiteColor]CGColor];

  layer.borderWidth=0.0f;

  //添加四个边阴影

  self.pageContenter.layer.shadowColor= [UIColorblackColor].CGColor;//阴影颜色

  self.pageContenter.layer.shadowOffset=CGSizeMake(0,0);//阴影偏移 self.pageContenter.layer.shadowOpacity=0.5;//阴影不透明度 self.pageContenter.layer.shadowRadius=5.0;//阴影半径

  二、给视图加上阴影

  UIView * content=[[UIView alloc] initWithFrame:CGRectMake(100, 250, 503, 500)];

  content.backgroundColor=[UIColor orangeColor];

  //content.layer.shadowOffset=10;

  content.layer.shadowOffset = CGSizeMake(5, 3); content.layer.shadowOpacity = 0.6; content.layer.shadowColor = [UIColor blackColor].CGColor;

  [self.window addSubview:content]; 

  76UIView有一个属性,clipsTobounds 默认情况下是NO, 如果,我们想要view2把超出的那部份隐藏起来的话,就得改变它的父视图也 view1clipsTobounds属性值。

  view1.clipsTobounds = YES;

  使用objective-c 建立UUID UUID128位的值,它可以保证唯一性。通常,它是由机器本身网卡的MAC

  址和当前系统时间来生成的。 UUID是由中划线连接而成的字符串。例如:0A326293-BCDD-4788-8F2D-

  C4D8E53C108B

  在声明文件中声明一个方法:

  #import <UIKit/UIKit.h>

  @interface UUIDViewController : UIViewController { }

  - (NSString *) createUUID;

  @end

  对应的实现文件中实现该方法:

  - (NSString *) createUUID {

  CFUUIDRef uuidObject = CFUUIDCreate(kCFAllocatorDefault);

  NSString *uuidStr = (NSString *)CFUUIDCreateString(kCFAllocatorDefault, uuidObject);

  CFRelease(uuidObject);

  return uuidStr; }

  77iPhone iPad中横屏显示代码 

  1、强制横屏

  [application setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:NO];

  2、在infolist 面加了Supported interface orientations 一项,增加之后添加四个item就是 ipad的四个 方向

  item0 UIInterfaceOrientationLandscapeLeft

  item1 UIInterfaceOrientationLandscapeRight 这表明只 支持横屏显 经常让人混淆迷惑的问题 - 数组和其他集合类

  78、当一个对象被添加到一个array, dictionary, 或者 set等这样的集合类型中的时候,集合会retain它。 对应 ,当集合类被release的时候,它会发送对应的release消息给包含在其中的对象。 因此,如果你想建立一 个包含一堆number的数组,你可以像下面示例中的几个方法来做

  NSMutableArray *array; int i;

  // ...

  for (i = 0; i < 10; i++) {

  NSNumber *n = [NSNumber numberWithInt: i];

  [array addObject: n]; }

  在这种情况下, 我们不需要retain这些number,因为array将替我们这么做。 NSMutableArray *array;

  int i;

  // ...

  for (i = 0; i < 10; i++) {

  NSNumber *n = [[NSNumber alloc] initWithInt: i];

  [array addObject: n];

  [n release];

  }

  在这个例子中,因为你使用了-alloc去建立了一个number,所以你必须显式的-release,以保证retain count的平衡。因为将number加入数组的时候,已经retain它了,所以数组中的number变量不会被release

  79UIView动画停止调用方法遇到的问题

  在实现UIView的动画的时候,并且使 UIView来重复调 用它结束的回调时候要 注意以下 方法中的finished参数

  -(void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context

  {

  if([finishied boolValue] == YES)

  //一定要判断这句话,要不在程序中当多个View刷新的时候,就可能出现动画异常的现象 {

  //执行想要的动作 }

  }

  80、判断在UIViewController,viewWillDisappear的时候是push还是 pop出来

  - (void)viewWillDisappear:(BOOL)animated {

  NSArray *viewControllers = self.navigationController.viewControllers; if (viewControllers.count > 1 && [viewControllers

  objectAtIndex:viewControllers.count-2] == self) {

  // View is disappearing because a new view controller was pushed onto the

  stack

  NSLog(@"New view controller was pushed");

  } else if ([viewControllers indexOfObject:self] == NSNotFound) { // View is disappearing because it was popped from the stack NSLog(@"View controller was popped");

  } }

  81、连接字符串小技巧

  NSString *string1 = @"abc / cde";

  NSString *string2 = @"abc" @"cde";

  NSString *string3 = @"abc" "cde";

  NSLog( @"string1 is %@" , string1 ); 

  NSLog( @"string2 is %@" , string2 ); NSLog( @"string3 is %@" , string3 ); 

  打印结果如下:

  string1 is abc cde string2 is abccde

  82、随文字大小label自适应

  label=[[UILabel alloc] initWithFrame:CGRectMake(50, 23, 175, 33)];

  label.backgroundColor = [UIColor purpleColor];

  [label setFont:[UIFont fontWithName:@"Helvetica" size:30.0]]; 

  [label setNumberOfLines:0];

  //[myLable setBackgroundColor:[UIColor clearColor]]; [self.window addSubview:label];

  NSString *text = @"this is ok";

  UIFont *font = [UIFont fontWithName:@"Helvetica" size:30.0];

  CGSize size = [text sizeWithFont: font constrainedToSize: CGSizeMake(175.0f, 2000.0f) lineBreakMode: UILineBreakModeWordWrap];

  CGRect rect= label.frame; rect.size = size;

  [label setFrame: rect]; [label setText: text];

  83UILabel字体加粗

  //加粗

  lb.font = [UIFont fontWithName:@"Helvetica-Bold" size:20]; //加粗并且倾斜

  lb.font = [UIFont fontWithName:@"Helvetica-BoldOblique" size:20];

  84、为IOS应用组件添加圆角的方法 具体的实现是使用QuartzCore,下面我具体的描述一下实现过程:

  首先创建一个项目,名字叫:ipad_webwiew

  利 Interface Builder添加 一个UIWebView,然后和相应的代码相关联 添加QuartzCore.framework

  代码实现: 文件:

  #import <UIKit/UIKit.h>

  #import <QuartzCore/QuartzCore.h>

  @interface ipad_webwiewViewController : UIViewController {

  IBOutlet UIWebView *myWebView; UIView *myView;

  }

  @property (nonatomic,retain) UIWebView *myWebView; @end

  代码实现:

  - (void)viewDidLoad {

  [super viewDidLoad]; //给图层添加背景图 : //myVientents = (id)[UIImage

  imageNamed:@"view_BG.png"].CGImage; //将图层的边框设置为圆脚

  myWebViernerRadius = 8; myWebView.layer.masksToBounds = YES; //给图层添加 一个有 色边框

  myWebView.layer.borderWidth = 5; myWebView.layer.borderColor = [[UIColor colorWithRed:0.52

  green:0.09 blue:0.07 alpha:1] CGColor]; }

  85、实现UIToolBar的自动消失 

  -(void)showBar

  {

  ! [UIView beginAnimations:nil context:nil];

  ! [UIView setAnimationDuration:0.40];

  ! (_toolBar.alpha == 0.0) (_toolBar.alpha = 1.0) : (_toolBar.alpha = 0.0);

  ! [UIView commitAnimations];

  }

  - (void)viewDidAppear:(BOOL)animated {

  [NSObject cancelPreviousPerformRequestsWithTarget: self];

  [self performSelector: @selector(delayHideBars) withObject: nil afterDelay: 3.0];

  }

  - (void)delayHideBars { [self showBar];

  }

  86、自定义UINavigationItem.rightBarButtonItem

  UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"remote",@"mouse",@"text",nil]];

  [segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"home_a.png"] atIndex:0 animated:YES];

  [segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"myletv_a.png"] atIndex:1 animated:YES];

  segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; segmentedControl.frame = CGRectMake(0, 0, 200, 30); 

  [segmentedControl setMomentary:YES];

  [segmentedControl addTarget:self action:@selector(segmentAction:)

  forControlEvents:UIControlEventValueChanged];

  UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl];

  self.navigationItem.rightBarButtonItem = barButtonItem; 

  [segmentedControl release];

  UINavigationController直接返回到根viewController

  [self.navigationController popToRootViewControllerAnimated:YES];

  想要从第五层直接返回到第二层或第三层,用索引的形式

  [self.navigationController popToViewController: [self.navigationController.viewControllers objectAtIndex: ([self.navigationController.viewControllers count] - 2)] animated:YES];

  87、键盘监听事件

  #ifdef __IPHONE_5_0

  float version = [[[UIDevice currentDevice] systemVersion] floatValue];

  if (version >= 5.0)

  {

  [[NSNotificationCenter defaultCenter] addObserver:self

  selector:@selector(keyboardWillShow:) name:UIKeyboardWillChangeFrameNotification object:nil];

  }

  #endif

  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];

  -(void)keyboardWillShow:(NSNotification *)notification {

  NSValue *value = [[notification userInfo] objectForKey:@"UIKeyboardFrameEndUserInfoKey"];

  CGRect keyboardRect = [value CGRectValue]; NSLog(@"value %@ %f",value,keyboardRect.size.height); [UIView beginAnimations:nil context:nil];

  [UIView setAnimationDuration:0.25];

  keyboardHeight = keyboardRect.size.height; self.view.frame = CGRectMake(0, -(251 - (480 - 64 -

  keyboardHeight)), self.view.frame.size.width, self.view.frame.size.height);

  [UIView commitAnimations]; }

  88 ios6.0强制横屏的方法:

  在appDelegate里调用

  if (!UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) {

  [[UIApplication sharedApplication]

  setStatusBarOrientation:

  UIInterfaceOrientationLandscapeRight animated:NO];

  }


  • 1.颜色转变成图片

- (UIImage *)createImageWithColor:(UIColor *)color

{

    CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);

    UIGraphicsBeginImageContext(rect.size);

    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetFillColorWithColor(context, [color CGColor]);

    CGContextFillRect(context, rect);

    UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return theImage;

  • 2.app评分跳转

-(void)goToAppStore

{        

    NSString *str = [NSString stringWithFormat:    

                     @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%d",547203890];    

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];       

  • 3.获取当前系统语言环境

NSUserDefaults* defs = [NSUserDefaults standardUserDefaults];

NSArray* languages = [defs objectForKey:@"AppleLanguages"];

   NSString* preferredLang = [languages objectAtIndex:0];


NSURL *imageURL = [NSURL URLWithString:@"http://www.baidu.com/img/baidu_logo.gif"];

NSData *photoData = [NSData dataWithContentsOfURL:imageURL];

UIImage *image = [[UIImage alloc] initWithData:photoData];

m_ImageView.image = image;


1. info.plist文件中添加一个ChannelID的内容。然后指定一个值。

2. 在程序中调用下边语句即可。

NSDictionary* infoDict = [[NSBundle mainBundle] infoDictionary];

NSString *channelID = [NSString stringWithFormat:@"%@", [infoDict objectForKey:@"ChannelID"]];

NSLog(@"ChannelID:%@", channelID);

退出登录

1. 

exit(0);

2.

if([[UIApplication sharedApplication] respondsToSelector:@selector(terminateWithSuccess)]){

    [[UIApplication sharedApplication] performSelector:@selector(terminateWithSuccess)];

}

[self performSelector:@selector(notExistCall)]; abort();


实现方法是,在应用的info.plist里找到【Required background modes】项,在其中添加如下item: App registers for location updates】。

当上述设定完成后,只要你在应用中打开了GPS定位功能,即使程序挂起,仍然能够获取GPS定位信息。


iphone当后台加载数据时,在手机的标题栏会有一个加载图标,利用程序可以控制网络的加载

[UIApplication sharedApplication].networkActivityIndicatorVisible=NO;



代码段整理

search bar样式修改代码 


-(BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar

{

    searchBar.showsCancelButton = YES;


    for (id cc in [searchBar subviews])

    {

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {

            for (id dd in [cc subviews]) {

                if ([dd isKindOfClass:[UIButton class]])

                {

                    UIButton *btn = (UIButton *)dd;

                    [btn setTitle:@"Search" forState:UIControlStateNormal];

                }

                if ([dd isKindOfClass:[UITextField class]]) {

                    UITextField *field = (UITextField *)dd;

                    field.returnKeyType = UIReturnKeyDone;

                }

            }

        }else{

            if ([cc isKindOfClass:[UIButton class]])

            {

                UIButton *btn = (UIButton *)cc;

                [btn setTitle:@"Search" forState:UIControlStateNormal];

            }

            if ([cc isKindOfClass:[UITextField class]]) {

                UITextField *field = (UITextField *)cc;

                field.returnKeyType = UIReturnKeyDone;

            }

        }

    }

return YES;

}


计算文件夹下文件的总大小


+(float)fileSizeForDir:(NSString*)path//计算文件夹下文件的总大小

{

    NSFileManager *fileManager = [[NSFileManager alloc] init];

    float size =0;

    NSArray* array = [fileManager contentsOfDirectoryAtPath:path error:nil];

    for(int i = 0; i<[array count]; i++)

    {

        NSString *fullPath = [path stringByAppendingPathComponent:[array objectAtIndex:i]];

        

        BOOL isDir;

        if ( !([fileManager fileExistsAtPath:fullPath isDirectory:&isDir] && isDir) )

        {

            NSDictionary *fileAttributeDic=[fileManager attributesOfItemAtPath:fullPath error:nil];

            size+= fileAttributeDic.fileSize/ 1024.0/1024.0;

        }

        else

        {

            [self fileSizeForDir:fullPath];

        }

    }

    [fileManager release];

    return size;

}


后台播放暂停音频

- (void)viewDidAppear:(BOOL)animated

{

    [super viewDidAppear:animated];

    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

    [self becomeFirstResponder];

}


- (void)viewWillDisappear:(BOOL)animated

{

    [super viewWillDisappear:animated];

    [[UIApplication sharedApplication] endReceivingRemoteControlEvents];

    [self resignFirstResponder];

    [self becomeFirstResponder];

}

- (void) remoteControlReceivedWithEvent: (UIEvent *) receivedEvent {

    if (receivedEvent.type == UIEventTypeRemoteControl) {

        

        switch (receivedEvent.subtype) {

                

            case UIEventSubtypeRemoteControlTogglePlayPause:

                [self playOrPause];

                break;

                

            case UIEventSubtypeRemoteControlPreviousTrack:

//                [self skipToPreviousItem];

                break;

                

            case UIEventSubtypeRemoteControlNextTrack:

//                [self skipToNextItem];

                break;

                

            default:

                break;

        }

    }

}


iPhone的系统目录


得到Document目录:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];


得到temp临时目录:

NSString *tempPath = NSTemporaryDirectory();


得到目录上的文件地址:

NSString *文件地址 = [目录地址 stringByAppendingPathComponent:@"文件名.扩展名"];



ios判断手机号码

+(BOOL)CheckPhoneNumInput:(NSString *)_text{ 

     NSString *Regex =@"(13[0-9]|14[57]|15[012356789]|18[02356789])\\d{8}"; 

     NSPredicate *mobileTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", Regex]; 

     return [mobileTest evaluateWithObject:_text]; 

}



-(void)copyFileDatabase 

    NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory,NSUserDomainMask, YES); 

    NSString *documentsDirectory = [paths objectAtIndex:0];     

    NSString *documentLibraryFolderPath = [documentsDirectory stringByAppendingPathComponent:@"elimimation"]; 

    if ([[NSFileManager defaultManager] fileExistsAtPath:documentLibraryFolderPath]) { 

        NSLog(@"文件已经存在了"); 

    }else { 

        NSString *resourceSampleImagesFolderPath =[[NSBundle mainBundle] 

                                                   pathForResource:@"elimimation" 

                                                   ofType:@"sqlite"]; 

        NSData *mainBundleFile = [NSData dataWithContentsOfFile:resourceSampleImagesFolderPath]; 

        [[NSFileManager defaultManager] createFileAtPath:documentLibraryFolderPath 

                                                    contents:mainBundleFile 

                                                  attributes:nil]; 

    }


-(void)deleteFileDatabade 

    NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory,NSUserDomainMask, YES); 

    NSString *documentsDirectory = [paths objectAtIndex:0];     

    NSString *documentLibraryFolderPath = [documentsDirectory stringByAppendingPathComponent:@"elimimation"]; 

    [[NSFileManager defaultManager] delete:documentLibraryFolderPath]; 

}



//静音状态下播放

  [[AVAudioSession sharedInstance] setActive:YES 

                                       error:nil];

  //设置代理 可以处理电话打进时中断音乐播放

  [[AVAudioSession sharedInstance] setDelegate:self];

  //后台播放

  [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback 

                                         error:nil];


十个好用的iOS开发辅助工具与资源

http://www.cocoachina.com/applenews/devnews/2012/1128/5207.html?1358417792


http://www.cocoachina.com/bbs/simple/?t182387.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值