Winson|Winson 的 iOS 笔记(持续更新)

以下,记录一些iOS开发遇到的琐碎知识,持续更新:
1、Xcode的Assets里面图片裁剪问题; Xcode的Assets里面的需要Slicing的图片区分1x、2x和3x,如果只放一张1x的图进行Slicing,实际显示效果是模糊。
注:Slicing,切断、切片,实际应用为固定不变区域(一般是四个角),其他区域以一像素同色块填充。
2、解决MJRefresh不自动显示refreshing的问题:

if (@available(iOS 11.0, *)) { self.collectionView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; self.collectionView.contentInset = UIEdgeInsetsMake(64, 0, 0, 0); self.collectionView.scrollIndicatorInsets = self.collectionView.contentInset; } else { self.automaticallyAdjustsScrollViewInsets = NO; }

3、点击顶部状态栏,tableView滑动至顶部的监听事件:
#pragma mark - UIScrollViewDelegate - (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView { NSLog(@"触发了回到顶部的动作"); return YES; }

4、Pod search 遇到的问题: 错误:[!] Unable to find a pod with name, author, summary, or description matching xxx ① 检查这个开源项目是否真实存在在Cocoapods库中;
  • 打开 https://cocoapods.org/ 输入要查询的项目,如果没搜索到,证明这个项目在Cocoapods库中确实不存在,可能不是安装的Cocoapods出了问题;
② 如果在 https://cocoapods.org/ 查询到该项目,用终端使用pod命令却查不到,可首先尝试移除索引的方法来排除问题:
rm ~/Library/Caches/CocoaPods/search_index.json

【Winson|Winson 的 iOS 笔记(持续更新)】③ 如果方法 ② 未能解决问题,按顺序键入以下命令:
pod repo remove master cd ~/.cocoapods/repos git clone --depth 1 https://github.com/CocoaPods/Specs.git master rm ~/Library/Caches/CocoaPods/search_index.json

Pod 安装与更新之常用命令
  • 全部的库更新重新安装
pod install

  • 只安装新添加的库和更新需要更新的库,已更新的库忽略。比如,在pod中新增了一个库,同时又修改了一个已安装库的版本,那么执行此操作可以安装新的库,同时更新那个修改过的已安装库。
pod install --verbose --no-repo-update

  • 只更新指定的库,其他的库忽略
pod update 库名 --verbose --no-repo-update

5、消除警告: 代码格式:
#pragma clang diagnostic push #pragma clang diagnostic ignored "-相关命令" // 警告的内容(出现警告的代码区) #pragma clang diagnostic pop

相关命令:
  • 方法弃用警告 -Wdeprecated-declarations
  • 不兼容指针类型 -Wincompatible-pointer-types
  • 循环引用 -Warc-retain-cycles
  • 未使用变量 -Wunused-variable
  • 未实现某个方法 -Wundeclared-selector
举个栗子:
//消除未使用变量警告 #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wunused-variable" int pageCount = 12; //这里并不会报警告 #pragma clang diagnostic pop

    推荐阅读