iOS 小问题解决方案 - 01

前言:把自己平常写项目遇到的一些问题的解决方案总结到这里,方便自己以后查看,也希望对看文章的你有一定的帮助

查看目录
01 解决UICollectionView点击手势与didSelected方法冲突
02 id特性的运用
03 标签控制器标签栏设置背景
04 设置图片的渲染模式
05 UITableViewCell的点击效果设置
06 UITableView 滑动遇到的小问题
07 运行突然出现you don’t have permission to view it错误
08 设置UITableViewCell的分割线最简单的方法
09 利用导航栏跳转时隐藏底部的tabBar栏
10 直接设置导航栏中间标题的字体大小和颜色
11 如何设置自定义字体
12 AFNetWorking 请求数据报”Request failed: unacceptable content-type: text/plain” 错误解决方法
pragma mark -- 01 解决UICollectionView点击手势与didSelected方法冲突
  • 做的小项目中遇到了给UICollectionView添加了点击手势而cell的代理方法didSelect不响应了,上网查了下解决方法
1.首先你得遵守 UIGestureRecognizerDelegate,设置代理 _tap.delegate = self;
2.实现代理方法
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    if (touch.view != self.collectionView) {
        return NO;
    }
   return YES;
}
这个代理方法会拦截你的点击手势,先进行判断是否进行手势事件
pragma mark — 02 id特性的运用
  • 先说说问题情况,就是我自定义了三个textField,都有一个暴露给外界调用的一个方法 - (void)initiaText; 然后在textField的代理方法中我想调用这个方法而又不去写具体的自定义类名
//三个自定义的UITextField
 _flagField.delegate = self;
 _birthdayField.delegate = self;
 _cityField.delegate = self;

//代理方法:(笨写法)
- (void)textFieldDidBeginEditing:(FlagField *)textField
{
  [textField initialText];
} 
//利用id特性:能调用任何对象的方法—我们就不用去修改代理的父类名称了
- (void)textFieldDidBeginEditing:(id)textField
{
  [textField initialText];
}
pragma mark -- 03 标签控制器标签栏设置背景
  • 对标签栏设置背景色的解决
首先如果直接设置tabBar的背景色,系统会自动渲染成半透明的
self.tabBar.backgroundColor = [UIColor orangeColor];
有两种解决方案
1.可以通过设置背景图片的方式给标签栏设置背景颜色,比如红色的背景图片,要求图片大小要正好 
//用以下方式获得标签栏宽高后,创建一个背景图片,
NSLog(@"%i,%i",(int)tabController.tabBar.frame.size.height,(int)tabController.tabBar.frame.size.width); tabController.tabBar.backgroundImage=[UIImage imageNamed:@"tabBarbg.png"];

2.用UIAppearance设置(这样设置就不会渲染了)
[[UITabBar appearance] setBarTintColor:[UIColor orangeColor]];
pragma mark -- 04 设置图片的渲染模式
  • 有次给导航栏的右边按钮设置了一张图片,结果只显示了一个蓝色的图片,查了一下,原来是系统渲染在作怪
直接给按钮设置图片是不行的,会被渲染为蓝色
[rightItem setImage:[UImage imageName:@"save"]];
我们可以单独设置一下图片的渲染模式
 UIImage *rightImage = [UIImage imageNamed:@"save.png"];
    //设置图像的渲染样式
    rightImage = [rightImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
   [rightItem setImage:rightImage];
//渲染模式  
 UIImageRenderingModeAutomatic  // 根据图片的使用环境和所处的绘图上下文自动调整渲染模式。  
 UIImageRenderingModeAlwaysOriginal   // 始终绘制图片原始状态,不使用Tint Color。  
 UIImageRenderingModeAlwaysTemplate   // 始终根据Tint Color绘制图片,忽略图片的颜色信息。  
pragma mark -- 05 UITableViewCell的点击效果设置
  • 很多时候我们不想要那个UITableViewCell点击时的灰色效果,可以这样设置
cell.selectionStyle = UITableViewCellSelectionStyleNone;//取消点击效果
//这下面三个设置了也不管用,都是灰色的背景 
    UITableViewCellSelectionStyleBlue
    UITableViewCellSelectionStyleGray
    UITableViewCellSelectionStyleDefault

pragma mark -- 06 UITableView 滑动遇到的小问题
  • UITableView 滑动不到最底部,结果发现是没有减去标签栏的高度
//必须要把49:标签栏的高度减去
_tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 99, self.view.mj_width,  self.view.mj_height - 99 - 49) style:UITableViewStylePlain];

pragma mark -- 07 运行突然出现you don’t have permission to view it错误
解决方法:
 将info.plist的文件中的Executable.file中的文件修改为:$(PRODUCT_NAME)
pragma mark — 08 设置UITableViewCell的分割线最简单的方法
  • 最快最简单设置UITableViewCell分割线
在自定义cell的.m文件中重写设置cell frame 的方法
#pragma mark -- 重写cell的frame方法来自己设置Cell的布局
-(void)setFrame:(CGRect)frame
{
     //设置Cell的高度少1;为cell加上分割线,分割线颜色就是tableView的背景色
    frame.size.height -= 1;
    [super setFrame:frame];
 }

pragma mark — 09 利用导航栏跳转时隐藏底部的tabBar栏
 NextViewController *nextVc = [[NextViewController alloc]init];
//设置跳转到的页面标签栏隐藏    
nextVc.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:nextVc animated:YES];
//设置当前界面标签栏不隐藏
self.hidesBottomBarWhenPushed = NO;

pragma mark — 10 直接设置导航栏中间标题的字体大小和颜色
1.有时我们想设置导航栏中间标题的字体样式,又不想去写一个titleLable 让:
self.navigationItem.titleView = titleLabel;
2.我们可以在系统默认的情况下直接设置
self.title = @"导航栏标题";
 [self.navigationController.navigationBar setTitleTextAttributes:
@{NSFontAttributeName:[UIFont systemFontOfSize:22],NSForegroundColorAttributeName:[UIColor orangeColor]}];

pragma mark - 11 如何设置自定义字体

辉少字体设置的博客

pragma mark - 12 AFNetWorking 请求数据报”Request failed: unacceptable content-type: text/plain” 错误解决方法

看这里

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似...
    liudhkk阅读 12,977评论 3 38
  • *7月8日上午 N:Block :跟一个函数块差不多,会对里面所有的内容的引用计数+1,想要解决就用__block...
    炙冰阅读 7,347评论 1 14
  • 今天四月第一天,愚人节,哥哥张国荣的忌日。我欣赏张国荣,但称不上是他的粉丝,对他了解有限,但每年的这个时候,我都能...
    May74阅读 1,274评论 0 0
  • 我慢慢意识到,一辈子在我们口中念起来的时候像是,远不可及。 但我们能够下定选择,迈出改变的机会,实在太少。 --题...
    三年不回来阅读 2,656评论 4 5
  • 人无癖不可与交,以其无深情也。 人无疵不可与交,以其无真气也。 有癖好的人往往对所爱好的事物情有独钟,做起来全神贯...
    独钓云烟阅读 3,379评论 2 16

友情链接更多精彩内容