关于iOS开发常用的一些东西
备注:这里只是个人的观点,有的地方也是copy,多多指教,个人笔记,有侵犯你们版权的地方还望海涵!!!
1. 自定义键盘:inputView重写,可以用重写UITextField来实现
2. UIDatePicker一般默认是英文的,可以设置日期模式(datePickerMode)来设置日期的模式,中文模式(local)
打印函数 nslog(@“%s”,__fun__);
3. 关于pickerView刷新
[pickerView reloadCompoent:1];
id你能调用任何东西的类方法
4. 生命周期一定要调用父类的方法(这是不变的理)
5. command +option+] 向下移动一行
6. 只要给scrollView添加额外的滚动区域就会向下移动(contentInset)
7. tableView的结论。iOS7之后苹果会自动给导航控制器给所有的UIScrollView的顶部添加一个额外的滚动区域,设置不需要调价额外的滚动区域
self.automaticallyAdjustsScrollViewInsets = NO;
8. sizeToFit自动计算lable文字的大小
9. NSString *docsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];搜索路径关于我们的的用户中,YES表示展开我们的路径,不然会以~给出我们的沙盒路径.
10. 沙盒路径应用程序
11. 沙河里面找到偏好设置文件既可以找到里面相应的数据文件(preference)
12. 存储自定义对象用归档
13. 把自定义对象归档的时候,我们必须在这个自定义等等类里面进行encodeWithCoder,但是我们必须遵守协议,并且生成的这个自定义类的文件是打不开的
14. 所有的控件都有transform这个属性,transform表示形变,(平移,放大,缩放)
15. -(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
这个方法是无论你点击那个视图都有一个视图解决问题的时候(找到最合适的处理视图)
16. -(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event 使用注意点:点必须是方法点用者坐标系上的点,返回NO表示点传到那个页面上断了
17. 上面是关于穿透的事件处理,
18. + (void)initialize;这个方法只会调用一次,但是如果子类里面调用了 super方法的话调用的次数不一定是1,而且子类自己会调用自己的+ (void)initialize方法,一般在这里我们可以写一个单例供给我们使用
19. 关于block的传值,这个东西真的很好用,按照顺序调用既可以
下面是例子:
-(void)myViewTest:(NSString *)title animation:(void(^)(NSString *title1))animation complete:(void(^)(void))complete;
20. performSelector底层实现就是运行时机制
21. #import <objc/message.h>
运行时机制必须导入的头文件,谁做事情调用谁,在xcode里面如果你想调用一些底层的东西,你就要吧msg里面的属性设置为NO
22. #import <SafariServices/SafariServices.h>
是和WebView一样的,关于苹果官网的进度条是假的,因为苹果官网本身不让你调用进度的网页的,因为这个进度是不怎么安全的
23. 计算九宫格的行数的时候简介算法:
总的行数 = (总个数 + 每一列最多显示个数 - 1)/每一行最多显示个数
24. 获取文件的大小(遍历整个文件夹里面的所有文件)
[[NSFileManager defaultManager] subpathsAtPath:cachesOath];
遍历所有的相关的子路径,然后遍历多有的文件大小就可以加起来就可以了
方法如下:
NSUInteger size;
NSString *cachesPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).lastObject;
NSLog(@"%@",cachesPath);
NSFileManager *mg = [NSFileManager defaultManager];
NSArray *subPath = [mg subpathsAtPath:cachesPath];
for (NSString *fullPath in subPath) {
NSString *fullSubPath = [cachesPath stringByAppendingPathComponent:fullPath];
NSDictionary *atts = [mg attributesOfItemAtPath:fullSubPath error:nil];
size += [atts[NSFileSize] unsignedIntegerValue];
}
25. 1000000000像这样的写法在iOS里面我们可以用pow函数代替 pow(10,9);
26. 关于两件事不同步问题:我们可以用block回调的方式去解决
27. GCD 一旦任务创建就会执行,与控制器的销毁没有直接的联系
28. 用户体验和app的优化,tableView里面的cell
当控制器销毁的时候,应该销毁我们的cell,在GCD里面我们用弱引用就可以(很好的典型例子),但是GCD里面的代码还会继续执行,在我们做GCD前面判断下关于我们的WeakSelf是否为空
29. 关于枚举类型的想法:NS_ENUM(可以自己定义类型);enum 和 NS_ENUM一样的。但是NS是OC的东西,enum是以前旧的东西。
30. 判断一个View时候加载他的父视图上面一般有两种方法
(1)判断父视图是否存在
if(view.superview){
}
(2)判断window是否存在
if(view.window){
}
(3)如果是控制器,还有一种别的方法就是判断
if(viewController.isViewDidLoad){
}
31. 刷新可以自己定义,苹果原生的用的是UIRefreshControl,然后给这个控件添加事件就可以了
32. 关于OpenGl的学习网站:http://blog.csdn.net/wanglixin1999/article/details/51792505
33. 关于cell的分割线:
(1)可以直接在上面加imageView
(2)可以重写setFrame方法,把orign.y +=1;就可以了,这种方法很简单,也很实用,不用我们每次加线条
34. 关于中文的适配,经验:一般时候我们把中文放到最后面,因为这样的话不会造成代码的没有提示
35. 关于get和set方法,只有继承子类能用的用get方法,一般不能外界修改这个方法,但是set方法和get方法同时存在的时候外界是可以修改我们的这个属性的.
36. 关于tableViewCell的高度
——————这个方法是自动计算(讲解时用在xib里面的)自动尺寸
_tableView.rowHeight = UITableViewAutomaticDimension;
估算高度
_tableView.estimatedRowHeight = 44;
37. 关于强应用和弱应用的观点(自己总结)
下面是例子:
我的理解:关于block的理解,如果block内部使用一个外部的强应用的变量就会产生一个由block内部指向外部的强应用;但是可以用内部的强应用,这样不会产生强应用
小马哥总结
38.关于缓存问题:有的时候回出现很奇诡的问题,一般时候因为:
1.关于苹果内部从新写了你的那个方法
2.是因为缓存问题(这个问题很奇葩,一般时候我们采用的是清空的方法)
3.对自己代码进行断点走法测试
关于iOS开发常用的一些东西的更多相关文章
- IOS开发常用设计模式
IOS开发常用设计模式 说起设计模式,感觉自己把握不了笔头,所以单拿出iOS开发中的几种常用设计模式谈一下. 单例模式(Singleton) 概念:整个应用或系统只能有该类的一个实例 在iOS开发我们 ...
- iOS开发-常用第三方开源框架介绍
iOS开发-常用第三方开源框架介绍 图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网 ...
- iOS开发--常用技巧 (MJRefresh详解)
iOS开发--常用技巧 (MJRefresh详解) https://github.com/CoderMJLee/MJRefresh 下拉刷新01-默认 self.tableView.head ...
- iOS开发常用国外网站清单
工欲善其事必先利其器,最近发现临时查找一些东西容易浪费时间,花了点时间整理一下常用的网站,方便以后备用. 国内的code4app,ui4app,cocoachina,oschina,csdn就不说了, ...
- iOS开发常用第三方库
UI 动画 网络相关 Model 其他 数据库 缓存处理 PDF 图像浏览及处理 摄像照相视频音频处理 响应式框架 消息相关 版本新API的Demo 代码安全与密码 测试及调试 AppleWatch ...
- iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)--(转)
图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. 下 ...
- iOS 开发常用的调试工具
前言 最近博主临近毕业季,为了完美的写一篇毕业论文,真是:“锄禾日当午,汗滴禾下土”<—— 这句诗跟毕业我写毕业论文没任何一毛钱关系,我就是突然想吟湿了.不过博主作为网络工程专业的好青年,曾经的 ...
- iOS开发常用的第三方类库
在iOS开发中不可避免的会用到一些第三方类库,它们提供了很多实用的功能,使我们的开发变得更有效率:同时,也可以从它们的源代码中学习到很多有用的东西. Reachability 检测网络连接 用来检查网 ...
- IOS开发--常用工具类收集整理(Objective-C)(持续更新)
前言:整理和收集了IOS项目开发常用的工具类,最后也给出了源码下载链接. 这些可复用的工具,一定会给你实际项目开发工作锦上添花,会给你带来大大的工作效率. 重复造轮子的事情,除却自我多练习编码之外,就 ...
随机推荐
- Python入门学习指南--内附学习框架
https://blog.csdn.net/weixin_44558127/article/details/86527360
- 7 selenium 模块
selenium 模块 一.简介 1.Python的一个第三方库,对外提供的接口可以操作浏览器,然后让浏览器完成自动化的操作. 2.自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接 ...
- Routing a Marathon Race
直接爆搜的复杂度是2^n,对于n<=40的数据过不了. 考虑优化一下. 发现如果走了一个点后,以后是不可能再经过与它相邻的点的,因为这样走显然不如直接走那个与它相邻的点. 这样每走一步就可以删掉 ...
- Misha and Palindrome Degree CodeForces - 501E (回文串计数)
大意: 给定字符串, 求多少个区间重排后能使原串为回文串. 先特判掉特殊情况, 对于两侧已经相等的位置之间可以任意组合, 并且区间两端点至少有一个在两侧相等的位置处, 对左右两种情况分别求出即可. # ...
- Bacterial Melee CodeForces - 756D (dp去重)
大意: 给定字符串, 每次可以任选一个字符$x$, 将$x$左侧或右侧也改为$x$, 求最终能得到多少种字符串. 首先可以观察到最终字符串将连续相同字符合并后一定是原字符串的子序列 并且可以观察到相同 ...
- Spring配置表友好性优化思路
Spring配置表需要尽量保证对程序员的友好性,一下提供一种优化思路. 中途未保存,心态炸了,只贴图了,fuuuuuuuuuuuuuck 第一种(最烂,最不友好):以Json的格式保存在配置表中,程序 ...
- 『MXNet』第十二弹_再谈新建计算节点
上一节我们已经谈到了计算节点,但是即使是官方文档介绍里面相关内容也过于简略,我们使用Faster-RCNN代码中的新建节点为例,重新介绍一下新建节点的调用栈. 1.调用新建节点 参数分为三部分,op_ ...
- 『PyTorch』第四弹_通过LeNet初识pytorch神经网络_上
总结一下相关概念: torch.Tensor - 一个近似多维数组的数据结构 autograd.Variable - 改变Tensor并且记录下来操作的历史记录.和Tensor拥有相同的API,以及b ...
- Codeforces Round #250 (Div. 1)E. The Child and Binary Tree
题意:有一个集合,求有多少形态不同的二叉树满足每个点的权值都属于这个集合并且总点权等于i 题解:先用生成函数搞出来\(f(x)=f(x)^2*c(x)+1\) 然后转化一下变成\(f(x)=\frac ...
- js的正则表达式的替换
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Inse ...