iOS开发小技巧(持续更新)

iOS 开发小技巧(持续更新)

  • 1.tableview中不显示没有内容的cell
self.tableView.tableFooterView = [[UIView alloc] init];```

- 2.怎么像Safari一样滑动的时候隐藏navigationbar
``` objectivec
self.navigationController.hidesBarsOnSwipe = Yes;```

- 3.导航条返回键带的title太讨厌了,怎么让它消失?
``` objectivec
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60) forBarMetrics:UIBarMetricsDefault];
  • 4.ScrollView莫名其妙不能在viewController划到顶怎么办?
self.automaticallyAdjustsScrollViewInsets = NO; 
  • 5.怎么点击self.view就让键盘收起
 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {  
[self.view endEditing:YES];
 }
  • 6.怎么把tableview里Cell的小对勾颜色改成别的颜色?
objectivec = [UIColor redColor]; 
  • 7.本来我的statusbar是lightcontent的,结果用UIImagePickerController会导致我的statusbar的样式变成黑色,怎么办?
 - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { 
 [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
 } 
  • 8 .怎么把我的navigationbar弄成透明的而不是带模糊的效果?
[self.navigationBar setBackgroundImage:[UIImage new]  forBarMetrics:UIBarMetricsDefault]; 
self.navigationBar.shadowImage = [UIImage new]; 
self.navigationBar.translucent = YES; 
  • 9.怎么改变uitextfield placeholder的颜色和位置?
 - (void) drawPlaceholderInRect:(CGRect)rect {  
[[UIColor blueColor] setFill]; 
 [self.placeholder drawInRect:rect withFont:self.font lineBreakMode:UILineBreakModeTailTruncation alignment:self.textAlignment]; 
}
  • 10.NSString过滤特殊字符
// 定义一个特殊字符的集合
NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:"@/:;()¥「」"、[]{}#%-*+=_\|~<>$€^•'@#$%^&*()_+'""];
// 过滤字符串的特殊字符
NSString *newString = [trimString stringByTrimmingCharactersInSet:set];
  • 11.左右抖动动画
//1, 创建核心动画
CAKeyframeAnimation *keyAnima = [CAKeyframeAnimation animation];  
//2, 告诉系统执行什么动画。
keyAnima.keyPath = @"transform.rotation"; keyAnima.values = @[@(-M_PI_4 /90.0 * 5),@(M_PI_4 /90.0 * 5),@(-M_PI_4 /90.0 * 5)];  
// 3, 执行完之后不删除动画
 keyAnima.removedOnCompletion = NO;  
// 4, 执行完之后保存最新的状态
 keyAnima.fillMode = kCAFillModeForwards;  
// 5, 动画执行时间
 keyAnima.duration = 0.2;  
// 6, 设置重复次数。
 keyAnima.repeatCount = MAXFLOAT;  
// 7, 添加核心动画
 [self.iconView.layer addAnimation:keyAnima forKey:nil];
  • 12.屏幕截图
// 1. 开启一个与图片相关的图形上下文 UIGraphicsBeginImageContextWithOptions(self.view.bounds.size,NO,0.0);  
// 2. 获取当前图形上下文
 CGContextRef ctx = UIGraphicsGetCurrentContext();  
// 3. 获取需要截取的view的layer 
[self.view.layer renderInContext:ctx];  
// 4. 从当前上下文中获取图片
 UIImage *image = UIGraphicsGetImageFromCurrentImageContext();  
// 5. 关闭图形上下文 
UIGraphicsEndImageContext();  
// 6. 把图片保存到相册 UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
  • 13.强制横屏
#pragma mark - 强制横屏代码
 - (BOOL)shouldAutorotate{  
//是否支持转屏  
return NO;
}
 - (UIInterfaceOrientationMask)supportedInterfaceOrientations{  
//支持哪些转屏方向  
return UIInterfaceOrientationMaskLandscape;
}
 - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{  
return UIInterfaceOrientationLandscapeRight;
}
 - (BOOL)prefersStatusBarHidden{  
return NO;
}
  • 14.应用程序的生命周期
//1,启动但还没进入状态保存 :
 - (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
//2,基本完成程序准备开始运行:
 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
//3,当应用程序将要入非活动状态执行,应用程序不接收消息或事件,比如来电话了:
 - (void)applicationWillResignActive:(UIApplication *)application  
//4,当应用程序入活动状态执行,这个刚好跟上面那个方法相反:
 - (void)applicationDidBecomeActive:(UIApplication *)application  
//5,当程序被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可:
 - (void)applicationDidEnterBackground:(UIApplication *)application 
//6,当程序从后台将要重新回到前台时候调用,这个刚好跟上面的那个方法相反:
 - (void)applicationWillEnterForeground:(UIApplication *)application  
//7,当程序将要退出是被调用,通常是用来保存数据和一些退出前的清理工作:
 - (void)applicationWillTerminate:(UIApplication *)application
  • 15.视图的生命周期
1、 alloc 创建对象,分配空间
2、 init (initWithNibName) 初始化对象,初始化数据
3、 loadView 从nib载入视图 ,除非你没有使用xib文件创建视图
4、 viewDidLoad 载入完成,可以进行自定义数据以及动态创建其他控件
5、 viewWillAppear视图将出现在屏幕之前,马上这个视图就会被展现在屏幕上了
6、 viewDidAppear 视图已在屏幕上渲染完成
7、viewWillDisappear 视图将被从屏幕上移除之前执行
8、viewDidDisappear 视图已经被从屏幕上移除,用户看不到这个视图了
9、dealloc 视图被销毁,此处需要对你在init和viewDidLoad中创建的对象进行释放. viewVillUnload- 当内存过低,即将释放时调用;viewDidUnload-当内存过低,释放一些不需要的视图时调用。
  • 16 将汉字转换为不带音调的拼音
 - (NSString *)transformMandarinToLatin:(NSString *)string {  
NSMutableString *preString = [string mutableCopy];  
/*转换成成带音 调的拼音*/  
CFStringTransform((CFMutableStringRef)preString, NULL, kCFStringTransformMandarinLatin, NO); 
 /*去掉音调*/  
CFStringTransform((CFMutableStringRef)preString, NULL, kCFStringTransformStripDiacritics, NO);  return preString; 
}

你可能感兴趣的:(iOS开发小技巧(持续更新))