1、 设置系统导航栏标题颜色和字体大小等一些属性
[self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor], NSFontAttributeName:[UIFont systemFontOfSize:20]}];
当然还可以设置更多的Attributes属性,只需要将你想要设置的属性添加到字典里面就好啦!command点一个属性进去,就可以看见很多属性,基本是可以满足我们的需求了的!
小贴士:Attributes还可以设置按钮标题等等一系列Title属性
列如:[button setAttributedTitle:@{把你需要设置的属性放进来就可以啦} forState:UIControlStateNormal];
2、 下面是强迫症的福音,小弟也有点小小强迫症~~~
ps:当我们在项目删除了一些文件后,Xcode会报黄色警告⚠️
紫色的小箭头就是警告的原因,说文件找不到,黄色箭头是找不到的文件,明明就删除了还找来干啥?这是Xcode自带仓库出现的警告,很是逼死我这种强迫症患者~~~
解决方法:command + ,进入偏好设置,如图
把Source Control 取消勾选,好了世界安静了!
ps:取消后就不能用Xcode自带的仓库管理了,不过可以用外部SVN或Git(小弟也是比较喜欢用外部的~)还有用新Xcode后控制台打印一些乱七八糟的东西,这个网上有很多教程解决。
3、 有时候我们会遇到在为按钮或者tabBarItem等设置图片的时候,系统会自动把我们的图片渲染成蓝色,这时我们就可以让图片禁止系统渲染使用原图,方法如下:
UIImage * originImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];这样拿到的UIImage原图是什么样的就是什么样了。
4、 为TabBar设置阴影和背景色
UITabBarController *tabBarController = [[UITabBarController alloc] init];
// 设置阴影
tabBarController.tabBar.layer.shadowOpacity = 2;
tabBarController.tabBar.layer.shadowOffset = CGSizeMake(0, -1);
tabBarController.tabBar.layer.shadowColor = [UIColor grayColor].CGColor;
_tabBarC = tabBarController;
// 设置背景色
[UITabBar appearance].translucent = YES;
UIView *view = [[UIView alloc]initWithFrame:_tabBarC.tabBar.bounds];
view.backgroundColor = [UIColor whiteColor];
[[UITabBar appearance] insertSubview:view atIndex:0];
5、调用openURL拨打电话
方法1:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:15977688888"]];
方法2:
UIWebView *callWebview = [[UIWebView alloc] init];
[callWebview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"tel:15977688888"]]];
[self.view addSubview:callWebview];
方法3:(前面都是用tel:加电话号码,这个用"telprompt://"加电话号码,注意别用错,听说用这个上架容易被拒绝)
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://15977688888"]];
使用上面方法时出现:[Common] _BSMachError: port a713; (os/kern) invalid capability (0x14) "Unable to insert COPY_SEND"这个警告应该是xcode编译出现的,不影响我的使用,有人解决这个问题,麻烦留言告诉我一下,看国外的网址太慢了~~~
6、今天刚刚做到搜索栏历史记录功能,顺便记录一下,万一有小伙伴需要咧(轻量级的缓存NSUserDefaults为例),一键清空,控制保存记录条数,过滤相同数据,下面是代码:
-(void)SearchText :(NSString *)text
{
// 可变数据来添加历史记录
NSMutableArray *historyArray = [[NSMutableArray alloc] init];
if (self.historyArray) {
historyArray = [self.historyArray mutableCopy];
}
// 过滤相同的历史记录
if ([historyArray indexOfObject:text] != NSNotFound) {
// 相同记录不做操作
}else{
// 不同时添加到缓存
[historyArray addObject:text];
// 当历史记录超过6条时清除前面加入的第一条(当然也可以不使用,不过我们需求是保存6条)
if (historyArray.count > 6) {
[historyArray removeObjectAtIndex:0];
}
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:historyArray forKey:@"historyArray"];
}
}
- (void)emptyNSUserDefaults {
// 清空历史记录
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults removeObjectForKey:@"historyArray"];
self.historyArray = @[];
[self.hisTabelView reloadData];
}
-(void)readNSUserDefaults
{
// 读取历史记录
NSUserDefaults *userDefaultes = [NSUserDefaults standardUserDefaults];
self.historyArray = [userDefaultes arrayForKey:@"historyArray"];
if (self.historyArray) {
[self.hisTabelView reloadData];
}
}
ps:当然我们要显示出来的数据是要倒序的,在这里顺便也说一下吧,其实就是把下标倒序就好了(历史数据数组长度➖当前行数):cell2.textLabel.text = self.historyArray[(self.historyArray.count-1)-indexPath.row];
7、在输入文字时判断是否全为空格
NSInteger length = [[textView.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length];
这个方法主要是用了集合特性,只要判断length是否为零就可以知道输入的是否全为空格
8、使用系统方法几行代码实现高斯模糊效果
这是系统自带的四种模糊效果:typedef NS_ENUM(NSInteger, UIBarStyle) {
UIBarStyleDefault = 0,
UIBarStyleBlack = 1,
UIBarStyleBlackOpaque = 1, // Deprecated. Use UIBarStyleBlack
UIBarStyleBlackTranslucent = 2, // Deprecated. Use UIBarStyleBlack and set the translucent property to YES
} __TVOS_PROHIBITED;
这是我们要写的代码
UIImageView *bgImgView = [[UIImageView alloc] initWithFrame:self.view.bounds];
bgImgView.image = [UIImage imageNamed:@"backG"];
[self.view addSubview:bgImgView];
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, bgImgView.frame.size.width, bgImgView.frame.size.height)];
toolbar.barStyle = UIBarStyleDefault;
[bgImgView addSubview:toolbar];
9、使用Xcode8或以上的小伙伴用远程通知要在下面打开通知
当然,有的小伙伴打开发现,通知这个选项不见了~~~f*ck~~~不急,现在去下面的图修改一下team就好了~~~当然你的AppleID必须是勾选的这些应用的,这里就不多说了
10、项目中想使用dismiss回到根控制器的方法和跳级dismiss方法
①、回根控制器方法:遍历拿到根控制器再dismiss
-(void)dismissToRootViewController
{
UIViewController *vc = self;
while (vc.presentingViewController) {
vc = vc.presentingViewController;
}
[vc dismissViewControllerAnimated:YES completion:nil];
}
②、跳级dismiss方法,思路和上面差不多,此方法也可以回根控制器
[self.presentingViewController.presentingViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil];
一级一级得dismiss~根据你自己的需求加presentingViewController
未完待续。。。。。。。