1,xcode 9:如果用xcode 9打包上传的时候,报错如下:iTunes Store Operation Failed,An error occurred uploading to the iTunes Store。就是有这样的报错的话,那就是好像是因为更新了系统,然后系统做了一些修改导致的,所以解决方法也很简单,打开命令行,依次输入下面的命令即可。
cd ~ , 然后mv .itmstransporter/ .old_itmstransporter/ 。没有报错了,关机重启就可以了
2,iOS11:安全区域,safeAreaLayoutGuide,safeAreaInsets,safeAreaInsetsDidChange,insetsLayoutMarginsFromSafeArea仅用于AutoLayout,
3,iOS11:automaticallyAdjustsScrollViewInsets方法,iOS7中用来自动调整UIScrollView的contentInset,在iOS11之后将会使用contentInsetAdjustmentBehavior属性来代替。
4,iOS11:additionalSafeAreaInsets属性,iOS11加入安全区域后,对vc则可以通过该属性来对该区域附加一个边距信息,如:
self.additionalSafeAreaInsets = UIEdgeInsetsMake(30, 0, 0, 30);
注意:这里是附加边距,意思就是在原有的safeAreaInsets值中增加对应的边距值。如果原来的是{10, 0, 0, 10}, 则最后得出的边距是{40, 0, 0, 40}。
5,iOS11:systemMinimumLayoutMargins和viewRespectsSystemMinimumLayoutMargins属性,该属性表示一个系统最小的边距信息,所有的视图排版都应该遵守这个边距信息,除非将viewRespectsSystemMinimumLayoutMargins设置为NO。
6,iOS11:viewLayoutMarginsDidChange方法:根试图的边距变更时会触发该方法的回调,可以通过该方法来处理当边距改变时子视图的布局。
7,iOS11:viewSafeAreaInsetsDidChange方法,当视图的安全区域发生变更时会触发该方法的回调。可以通过该方法来处理安全区域变更时的子视图布局。(如果你在viewDidLoad 和viewDidAppear分别打印安全区的坐标就会发现不同)。
8,iOS11:UINavigationBar的大标题格式self.navigationController.navigationBar.prefersLargeTitles = YES; self.navigationItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeAlways;
9,iOS11:控制搜索控制器,searchController和hidesSearchBarWhenScrolling,这两个属性主要用于简化VC对UISearchController的集成以及视觉优化。其中searchController属性用于指定当前VC的一个搜索控制器。 而hidesSearchBarWhenScrolling属性则用于控制当视图滚动时是否隐藏搜索栏的UI,当该值为YES时,搜索栏只有在内容视图(UIScrollView及其子类)顶部是才会显示,在滚动过程中会隐藏起来;当该值为NO时,则不受滚动影响一直显示在导航栏中。
//设置SearchController到navigationItem
self.searchController = [[UISearchController alloc] initWithSearchResultsController:self];
self.navigationItem.searchController = self.searchController;
self.navigationItem.hidesSearchBarWhenScrolling = YES;10,iOS 11:在iOS 11中决定tableView的内容与边缘距离的是adjustedContentInset属性,而不是contentInset。
11,iOS 11:statusbar = 20pt,navigationbar = 64pt;
12,iOS 11:如果你的APP中使用的是自定义的navigationbar,隐藏掉系统的navigationbar,并且tableView的frame为(0,0,SCREENWIDTH, SCREENHEIGHT)开始,那么系统会自动调整SafeAreaInsets值为(20,0,0,0),如果使用了系统的navigationbar,那么SafeAreaInsets值为(64,0,0,0),如果也使用了系统的tabbar,那么SafeAreaInsets值为(64,0,49,0)。
13,iOS 11:safeAreaInsets属性反映了一个view距离该view的安全区域的边距。对于一个Controller的根视图而言,SafeAreaInsets值包括了被statusbar和其他可视的bars覆盖的区域和其他通过additionalSafeAreaInsets自定义的insets值。view层次中的其它view,SafeAreaInsets值反映了该view被覆盖的部分。如果一个view全部在它父视图的安全区域内,则SafeAreaInsets值为(0,0,0,0)。
14,iPhone X:启动图: 1125 * 2436,statusBar高度: 44,tabbar高度: 83
15,iPhone X:如果想在xcode 9中添加iPhone X启动图的模版,在右边栏的iOS8.0 or later这个选项中勾选portrait即可,然后就可以把准备好的启动图拖进去就搞定了。
16,iPhone X:出现下拉刷新的尾巴,
_newtableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; //以下是tableview高度计算出现问题 _newtableView.estimatedRowHeight = 0;
_newtableView.estimatedSectionHeaderHeight=0; _newtableView.estimatedSectionFooterHeight=0;
}else{
self.automaticallyAdjustsScrollViewInsets = NO;
}