Xcode8.2 免证书手机调试设置和遇到的问题后续

最近公司比较忙,没有及时跟新,忙的一逼,废话不多说,现在开始步入正题:

1.手机录音或通话时,app界面整体下移

当你的iphone在录音或者通话时,打开app你会发现,整个界面都下移了20像素,这个问题对于scrollView、tableView等可以垂直滚动的视图可能没有太大影响,但是对于那些不能滚动的视图,就有可能底部被遮盖20像素

本人在网上查阅了资料,也试过多种方法,这个问题依然存在,其实吧,位置尺寸写死。项目中导航控制器是自定义的,在自定义的类中添加如下代码就OK了。如下图(1):

图(1)

2.点击导航栏下方也会触发导航栏按钮的点击事件

如图所示,每次想选中右上角的图片,结果总是触发“取消”事件,明明没有点到导航栏上面去,问题的原因不清楚,解决方法创建一个UINavigationBar的分类,重写hitTest方法如下图(2):

图(2)

如果触摸点不在它上面,就不让它接收用户交互,然后使用系统的事件处理方法去处理

3.输入中文时限制字符长度

限制字母、数字、符号等其他非中文字符的长度大家应该都知道咋整,但如果是中文输入法,这就比较蛋疼了。举个例子,限制长度为5,输入“我爱写代码”,当已经输入“我爱写”两字,然后输入“代码”时就会出现如下情况

根本写不进去啊,这是为什么呢?因为输入的拼音也被计算在了字符串长度之内,导致输入“da”以后就不能继续输入了,可通过下面的办法解决

1

4.修改导航栏颜色

这个问题对有经验的开发者来说不是问题,但是当年笔者刚入行时,确实被这个问题折腾了好久。比如想设置导航栏的颜色为蓝色

self.navigationController.navigationBar.backgroundColor = [UIColor blueColor];

运行,然后......这特么是蓝色?笔者确定自己不是色盲

后来才知道,设置导航栏的背景色,需要设置barTintColor而不是backgroundColor

self.navigationController.navigationBar.barTintColor = [UIColor blueColor];

5.界面莫名其妙下移

这个问题跟上面的问题一样,都是比较基础的问题,有经验的人都知道如何解决,但是笔者曾经也被折磨过

为什么下面textView的内容不是从最上面开始的,而且还不能滚上去,当初真的被这种情况折腾的死去活来的,改frame,改约束,都没效果。后来才知道,当有导航控制器时,系统会默认将第一个添加的scrollView或其子类视图的内容下移64个像素,下面的textView是先添加的,所以其内容被下移了,而上面的却没有,解决方法是在控制器里加上下面这句代码

self.automaticallyAdjustsScrollViewInsets = NO;

6.GCD组函数

笔者在开发中遇到过这样一个功能,某个界面列表上面是企业,下面是联系人,而且获取企业列表与联系人列表的接口不是同一个,必须等企业跟联系人列表数据都获取完毕后才能刷新,于是就用到了GCD组函数

2

然而问题来了,[[IBOSServer shared]...]这玩意儿是封装好的,并且是个异步函数,大家应该都知道,异步函数不会阻塞线程,不用等里面的内容执行完就返回了,这就导致数据还没拿到,就开始执行notify里面的代码了。后来笔者发现,原来GCD组函数还有一种用法,完美解决问题

3
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,261评论 4 61
  • 前言(转) 做iOS开发这么长时间以来,遇到过不少难题,也踩过不少坑,本来没想过要写这篇文章,但是鉴于以下三点,笔...
    羊妞麻麻阅读 1,333评论 0 20
  • 理想中的生活必不是单调重复的生活。它要充满挑战,它要让你时刻感悟,时刻有所敬畏,有所学习。 它会是规律的生活。晚上...
    孙有腾阅读 227评论 0 0
  • 生活着,你看别人,别人也看你。人不是独立存在的个体,人有思想,所以可以感觉到来自对方的“目光”。
    正能量L7阅读 222评论 0 0
  • 现在有太多太多的伙伴被UI设计这个行业吸引过来,觉得UI设计高收入,所以都从事UI设计。我相信很多刚刚接触...
    UI设计学习阁阅读 459评论 0 0