ios11,新系统,新bug

1,tableview。在手机改换到iOS11 后,发现tableview的头部视图莫名其妙多了一部分,无论是距离self。view的顶部,还是导航栏的顶部,大概多了不到一百的pt,这个是由于之前没有设置

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
    return nil;
}

之前这个方法默写默认就会给headerview或者footerview返回空,有的时候我们在创建tableview的时候会写tableview.tablefooterView = [uiview new]; 不返回视图的时候这样在初始化方法中处理。headerview由于设计需要一般都在下面代理方法中单独设置,以后再写tableview的代理的时候注意一下将这个代理方法写上就行了。


2.iOS11 系统多了一个判定方法 @avaliable(iOS 11,*),之前的判定方法一般使用NS_IOS_VERSION == 100000 这种。这些都是预编译阶段的宏判定,预编译阶段主要判定是根据xcode版本,当代码中执行方法的时候,应该使用运行时判定版本是否大于iOS11,如果我使用xcode8来开发打包发布应用,那么在iOS11的手机上运行的时候  NS_IOS_VERSION == 100000也是返回YES的,所以要在对应的代码里加上一个判断:

if(@available (ios 11,*)){

   xxxxxxxxxxxx

}


3.iPhoneX 的适配,这个网上教程一堆,自己去找吧

4.xcode9 多了Git的版本管理。可以看到本地分支,commit历史,查看对比代码变化等等。功能还行,我还是习惯用终端敲着舒服

5.更新xcode9之后,使用的base  SDK是iOS11. 比如说你在更新xcode的时候 打开了项目,或者你电脑里安装了多个xcode。在xcode安装完成之后,终端内敲命令始终会出现xcodebuild error:xxxxx iPhonesimulation10.3 SDK lacal sdk not found之类的信息。意思就是xcode使用模拟器运行的时候会去找iPhonesimulation10.3的SDK,但是你已经装了iOS11的SDK,所以他找不到,但是不影响运行,只是看着别扭,解决办法就是在网上下一个iOS10.3的SDK包,复制,然后进入xcode-》文件夹内的模拟器文件夹,找到sdks文件夹,然后粘贴进去,命名为:iPhoneSimulator10.3.sdk就可以了


6.xcode9多了一个无线连接,给你iOS11设备匹配过后,设备不用连线也可以跑项目,虽然慢了点,在一个网络内部,至少方便测试同学了。


7.导航栏rightbarButtonItem上放置button的时候设置图片大小不对。 之前放置的可以直接写一个button然后self.navigationItem.rightbarButtonItem = [UIBarButtonItem alloc] initWithCustomView:button];这样,然后button setimage:xxx];不管图片真实是多大都会再button内部,更了iOS11我发现右侧按钮的图片全部显示,即使将buttoninitframe的时候设置成size是(1,1)也不行,解决办法就是先创建一个view。然后让itemview initwithcustomview:view。把button添加到view上就行了


8,self.navigationItem.titleView上如果添加了子控件,尽量使用cgrectmake来布局,使用masonry或者sd-layout 会出现布局错误。


9. 其他的 去网上看教程吧,有很多,发现了到时候再补充


本人创建了一个公众号,里面每天发一些教程进阶知识,有的是本人总结所得,有的是转载大神的文章,大家一起分享看。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值