使用Xcode9 创建项目出现的问题(Safe Area Lay

2017-10-08  本文已影响125人  跬步千里_LenSky

Xcode9新建个新项目,结果一运行直接报错

苹果爸爸在苹果在iOS7中引入的Top Layout Guide和Bottom Layout Guide,这些布局指南在iOS 11中被弃用,取而代之的是Safe Area Layout Guide.

针对新特性,解决方案如下

第一步、在项目报错地方打开右边工具栏找到如图位置选中View Controller,去掉Use Safe Area Layout Guides

第二步、切换到Main.storyboard文件,重读第一步操作打开右边工具栏找到如图位置选中View Controller,去掉Use Safe Area Layout Guides

来源

在屏幕适配上的问题 iPhone X的特殊待遇

#define KStatusBarHeight [[UIApplication sharedApplication] statusBarFrame].size.height

#define KNavBarHeight 44.0

#define KTabBarHeight ([[UIApplication sharedApplication] statusBarFrame].size.height>20?83:49)

//iphone x

#define KTopHeight (KStatusBarHeight + KNavBarHeight)

屏幕适配中的宏定义在下面记录一下

#define scaleX [UIScreen mainScreen].bounds.size.width/375.0f

#define scaleY [UIScreen mainScreen].bounds.size.height/667.0f

长期使用的若引用

#define WS(weakSelf) __weak typeof(self) weakSelf = self

#define SS(ss) __strong typeof(self)ss = self

iOS 11 UIScrollView的新特性(automaticallyAdjustsScrollViewInsets 不起作用了)

if (@available(iOS 11.0, *)) {

Scrollview.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;

} else {

self.automaticallyAdjustsScrollViewInsets = YES;

2017-10-20

在iOS 11的我们之前使用的 Grouped 类型的tableView 返回高度不写返回 sectionHeader 和 sectionFooter 的代理的时候 返回 区头和区尾高度的 代理都不会走 

解决方法是一定要有返回  return nil  就会走

//在刷新整个TableView  的时候出现了很奇葩的事情

整个TableView  不会停留在原有的位置了 来回跳动---苦恼的问题😢 原来还是 iOS11 退出的预估高度的问题 而且 使用mj 刷新  设置上拉加载更多的时候我的个乖乖 调用 了好几次上拉的方法  郁闷的要死。。。。。

解决办法 (感谢朋友们的帮助!!!)

if (@available(iOS 11.0, *)) {

UITableView.appearance.estimatedRowHeight = 0;

UITableView.appearance.estimatedSectionFooterHeight = 0;

UITableView.appearance.estimatedSectionHeaderHeight = 0;

_myTableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;

} else {

self.automaticallyAdjustsScrollViewInsets = NO;

}

当CollectionView 内容不超过控件本身高度 不能滚动 设置一下就行

self.collectionView.alwaysBounceVertical = YES        

正则判断 谓词过滤

NSString *pattern = @"^[0-9a-zA-Z\u4E00-\u9FA5\\d]*$";

    NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern];

    BOOL isMatch = [pred evaluateWithObject:str];

//看到公司以前项目中有的一个功能 就找了一下 如何打开QQ到指定QQ好聊天

这里主要是记录项目中的一个需求,闲着没事就把它记录下来,以供有需要的朋友们;

我们一般用webview加载,所以主要的是设置在它的跳转路径上;

这里有两个路径,介绍分别如下;

1. mqq://im/chat?chat_type=wpa&uin=好友QQ号&version=1&src_type=web;

这个路径是在iOS10.0上测试是有效的,直接提示是否打开QQ,并在用户允许的情况下跳转到指定的好友并与之进行聊天;

2. https://wpa.qq.com/msgrd?v=3&uin=好友QQ号&site=qq&nemu=YES;

这个路径的跳转就不尽人意了,不管是否有QQ,都先要到App Store的QQ下载页面,如果手机有QQ那么直接打开,反之下载,并且不会打开你指定的联系人聊天界面;

3. 如果想打开QQ公众号进行聊天的话,直接通过上面的方法是行不通的,那么只有曲线救国;通过打开Safari打开就能实现这个功能了;

``` 

上传APPStore 出现问题

原因是因为Mac的Java版本更新导致

解决办法

在终端执行下面三条指令:

1、cd ~

2、mv .itmstransporter/ .old_itmstransporter/

3、"/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/itms/bin/iTMSTransporter"

终端执行完毕,重现打开xcode打包上传就可以了

注意:

一定要等第三条命令执行完毕才可以哦!

作者:永不止步的程序员

链接:https://www.jianshu.com/p/80d0e873493f

來源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

```

上一篇下一篇

猜你喜欢

热点阅读