常见问题(四)
一,时间戳的检验
1> 不错的方法,但是跑在 iOS7 上就会出现异常,因为 iOS7 上要使用 longLongValue 代替 integerValue .
if (_start_time.integerValue / 1000 /1000 / 1000 / 1000 <= 0) 就抛弃掉,单位是毫秒.
二,视图不显示,也在最外层,点击一下就显示了
1> bringsubviewtofront 没有生效.
2> 看层次结构图没有问题.
3> 检查布局的代码,结果还真出了问题,设置约束中使用了make.left.right.mas_equalTo(self);更新约束的代码中使用了
make.width.mas_equalTo(@(width));因此有可能造成不显示的问题.
三,使用断点调试 framework 库文件代码
1> 对于使用 framework 库文件的代码,想调试 framework 的源代码,可以更改该 framework 工程的关联 app.
2> 方法如下:
① 路径:
运行需要用到该 framework 库程序的主程序 , 运行成功以后找到主程序的工程文件结构中(show the project navigator) 的 products(黄色文件夹)下的"工程名.app"路径.
(PS:右键 show in finder 可以查找到它的位置)
② 设置路径:
打开 framework 工程文件,选中左上角要调试的库,或当前工程名,选择 edit scheme ,在弹出的框中选择 Run --> Executable --> other,选中刚才的 app.
(PS:每设置一次 scheme 的 Executable, 就需要重新 build 一下,也就是执行"${PROJECT_DIR}/FrameworkAutoCopeScript.sh",更新库文件 sdk到主程序中)
③ 编译库:
输入正确的路径后会发现,左上角 framework名称前的公文包图片变成了 app 的默认图,直接在库文件中使用 cmd+b 编译一下.
(PS:把新的库文件导入到主程序中)
④ 调起 framework 程序:
停止程序 , 在 framework 工程文件中,使用 cmd + r 运行要插入断点的 framework 程序,就可以看到程序断到了断点的位置.
四,快捷隐藏collectionView某一行
1> 可以让该行的行高改为0,但是依旧能显示该行.
2> 保持 section 不变,在 collectionView:numberOfItemsInSection: 中让当前 section 的行数变为0,就可以处理这个问题.
3> 若重写了 collectionView:layout:insetForSectionAtIndex: 方法,则应同时将刚刚的 section 的返回值改为0.
五,按钮的背景图片或背景颜色中多了一条白线
1> 感觉是图片拉伸的问题,改变了图片的拉伸方式为 stretch 后,依然会有问题.
2> 研究了一下高度,改成一个和图片高度一样的数值之后,确实没有问题了....(PS:这里是图片有阴影,高度太高,拉伸就会出问题)
3> 对于按钮的背景颜色中也有白线,把高度改的大一点,就不会有白线了,也是类似问题.
六,判断一个字符串是否为数字
1 NSCharacterSet *noDigits = [[NSCharacterSet decimalDigitCharacterSet] invertedSet]; 2 if ([str rangeOfCharacterFromSet:noDigits].location == NSNotFound) 3 { 4 // 是数字 5 } else 6 { 7 // 不是数字 8 }
七, slide 轻划划不动, 用力划可以滑动
1 _tableView.delaysContentTouches = NO; 2 [_tableView.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { 3 if ([obj isKindOfClass:[UIScrollView class]]) { 4 UIScrollView *_s = (UIScrollView *)obj; 5 _s.delaysContentTouches = NO; 6 } 7 }];