1、禁止手机睡眠
1 |
|
2、隐藏某行cell
1 2 3 4 5 6 7 8 9 10 11 |
|
3、禁用button高亮
1 2 3 |
|
4、tableview遇到这种报错failed to obtain a cell from its dataSource
是因为你的cell被调用的早了。先循环使用了cell,后又创建cell。顺序错了
可能原因:1、xib的cell没有注册 2、内存中已经有这个cell的缓存了(也就是说通过你的cellId找到的cell并不是你想要的类型),这时候需要改下cell的标识
5、cocoa pods报这个错误:unable to access ‘https://github.com/facebook/pop.git/‘: Operation timed out after 0 milliseconds with 0 out of 0 bytes received
解决办法:原因可能是网络问题,网络请求超时了,只需要重试就行了
6、cocoa pods 出现ERROR: While executing gem ... (Errno::EPERM)
解决办法:
https://segmentfault.com/q/1010000002926243
7、动画切换window的根控制器
1 2 3 4 5 6 7 8 |
|
8、去除数组中重复的对象
1 |
|
9、编译的时候遇到 no such file or directory: /users/apple/XXX
是因为编译的时候,在此路径下找不到这个文件,解决这个问题,首先是是要检查缺少的文件是不是在工程中,如果不在工程中,需要从本地拖进去,如果发现已经存在工程中了,或者拖进去还是报错,这时候需要去build phases中搜索这个文件,这时候很可能会搜出现两个相同的文件,这时候,有一个路径是正确的,删除另外一个即可。如果删除了还是不行,需要把两个都删掉,然后重新往工程里拖进这个文件即可
10、iOS8系统中,tableView最好实现下-tableView: heightForRowAtIndexPath:这个代理方法,要不然在iOS8中可能就会出现显示不全或者无法响应事件的问题
11、iOS8中实现侧滑功能的时候这个方法必须实现,要不然在iOS8中无法侧滑
1 2 3 4 |
|
12、三个通知
NSSystemTimeZoneDidChangeNotification监听修改时间界面的两个按钮状态变化
UIApplicationSignificantTimeChangeNotification 监听用户改变时间 (只要点击自动设置按钮就会调用) NSSystemClockDidChangeNotification 监听用户修改时间(时间不同才会调用)
13、SDWebImage本地缓存有时候会害人。如果之前缓存过一张图片,即使下次服务器换了这张图片,但是图片url没换,用sdwebimage下载下来的还是以前那张,所以遇到这种问题,不要先去怼服务器,清空下缓存再试就好了。
14、上线前注意:
- 1)、删掉代码中所有的测试代码
- 2)、如果后台有审核模式,提醒后台开启此模式
- 3)、主流程再跑一跑
- 4)、全局搜索waring,检查所有标记waring的地方
15、跳进app权限设置
1 2 3 4 5 6 |
|
16、给一个view截图
1 2 3 4 |
|
17、开发中如果要动态修改tableView的tableHeaderView或者tableFooterView的高度,需要给tableView重新设置,而不是直接更改高度。正确的做法是重新设置一下tableView.tableFooterView = 更改过高度的view。为什么?其实在iOS8以上直接改高度是没有问题的,在iOS8中出现了contentSize不准确的问题,这是解决办法。
18、注意对象为nil的时候,调用此对象分类的方法不会执行
19、collectionView的内容小于其宽高的时候是不能滚动的,设置可以滚动:
1 2 |
|
20、设置navigationBar上的title颜色和大小
1 |
|
21、颜色转图片
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
22、view设置圆角
1 2 3 4 5 6 |
|
23、强/弱引用
1 2 |
|
24、由角度转换弧度
1 |
|
25、由弧度转换角度
1 |
|
26、获取图片资源
1 |
|
27、获取temp
1 |
|
28、获取沙盒 Document
1 |
|
29、获取沙盒 Cache
1 |
|
30、GCD代码只执行一次
1 |
|
31、自定义NSLog
1 2 3 4 5 |
|
32、Font
1 2 3 4 5 |
|
33、FORMAT
1 |
|
34、在主线程上运行
1 |
|
35、开启异步线程
1 |
|
36、通知
1 2 3 |
|
37、随机颜色
1 2 3 4 5 6 7 |
|
38、获取window
1 2 3 4 5 6 7 8 9 10 11 12 |
|
39、修改textField的placeholder的字体颜色、大小
1 2 |
|
40、统一收起键盘
1 |
|
41、控制屏幕旋转,在控制器中写
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
42、获取app缓存大小
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
43、清理app缓存
1 2 3 4 5 6 7 8 9 10 11 |
|
44、模型转字典
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
|
45、交换两个方法实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
46、打印百分号和引号
1 2 |
|
47、几个常用权限判断
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
48、获取手机型号
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
|
49、长按复制功能
1 2 3 4 5 6 7 8 9 10 |
|
50、cocoapods升级
在终端执行 sudo gem install -n / usr / local / bin cocoapods --pre
51、设置启动页后,依然显示之前的
删除app,手机重启,重新安装
52、判断图片类型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
|
53、获取手机和app信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
|
54、获取一个类的所有属性
1 2 3 4 5 6 7 |
|
55、image圆角
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
56、image拉伸
1 2 3 4 5 6 7 |
|
57、JSON字符串转字典
1 2 3 4 5 |
|
58、身份证号验证
1 2 3 4 5 6 7 8 9 10 |
|
59、获取设备mac地址
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
|
60、导入自定义字体库
- 1、找到你想用的字体的 ttf 格式,拖入工程
- 2、在工程的plist中增加一行数组,“Fonts provided by application”
- 3、为这个key添加一个item,value为你刚才导入的ttf文件名
- 4、直接使用即可:label.font = [UIFont fontWithName:@"你刚才导入的ttf文件名" size:20.0];
61、拿到当前正在显示的控制器,不管是push进去的,还是present进去的都能拿到
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
62、runtime为一个类动态添加属性
1 2 |
|
63、获取runtime为一个类动态添加的属性
1 |
|
64、KVO监听某个对象的属性
1 2 3 4 5 6 7 8 9 10 |
|
65、Reachability判断网络状态
1 2 3 4 5 6 7 8 9 10 |
|
66、AFNetworking监听网络状态
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
67、透明颜色不影响子视图透明度
1 |
|
68、取图片某一点的颜色
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
|
69、判断该图片是否有透明度通道
1 2 3 4 5 6 7 8 |
|
70、获得灰度图
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
71、根据bundle中的文件名读取图片
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
|
72、合并两个图片
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
73、根据bundle中的图片名创建imageview
1 2 3 4 |
|
74、为imageView添加倒影
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
75、画水印
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
76、让label的文字内容显示在左上/右上/左下/右下/中心顶/中心底部
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
|
77、scrollView上的输入框,键盘挡住的问题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
78、frame布局的cell动态高度
这种通常在你的模型中添加一个辅助属性cellHeight,在模型中重写这个属性的get方法,根据你的布局和模型中的其他属性值计算出总高度。最后在tableView:heightForRow方法中,根据indexPath找出对应的模型,返回这个高度即可。
79、AutoLayout布局的cell动态高度
1 2 3 4 |
|
cell
80、使用performSelector:调用函数,内存泄漏问题
当我们在开发中使用[obj performSelector:NSSelectorFromString(@"aMethod")];这类方法时可能会收到一个警告"performSelector may cause a leak because its selector is unknown".
是因为编译器不清楚这个对象能不能相应这个方法,如果不能,则是不安全的,而且编译器也不清楚该怎么处理这个方法的返回值!
1 2 3 4 5 6 7 8 9 10 |
|
81、一个字符串是否包含另一个字符串
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
82、cell去除选中效果
1 |
|
83、cell点按效果
1 2 3 |
|
84、当删除一个从xib拖出来的属性时,一定记得把xib中对应的线也删掉,不然会报类似[setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key的crash
点击这个叉号删除
85、真机测试的时候报错:Could not launch "你的 App",process launch failed: Security
因为你的app没有上线,iOS9开始,需要手动信任Xcode生成的描述文件,打开手机设置->通用->描述文件->点击你的app的描述文件->点击信任
86、真机测试的时候报错:Could not find Developer Disk Image
这是因为你的设备系统版本大于Xcode能兼容的系统版本,比如你的设备是iOS10.3,而Xcode版本是8.2(Xcode8.2最大兼容iOS10.2),就会报这个错误。解决办法就是升级Xcode!
87、UITextView没有placeholder的问题?
网上有很多此类自定义控件,也可以参考下我写的一个UITextView分类 UITextView-WZB
88、移除字符串中的空格和换行
1 2 3 4 5 6 |
|
89、判断字符串中是否有空格
1 2 3 4 5 6 7 8 9 10 |
|
90、获取一个视频的第一帧图片
1 2 3 4 5 6 7 8 9 10 |
|
91、获取视频的时长
1 2 3 4 5 6 7 |
|
92、字符串是否为空
1 2 3 |
|
93、将app上传到App Store的时候通常会遇到这个问题
try again
很多人说这事苹果爸爸服务器问题,重复尝试几次,总会成功的!
但是经过尝试发现如果使用Application Loader上传成功率就非常高,所以还是推荐把ipa文件导出直接用Application Loader上传。
如果Application Loader也不行,需要检查下自己的网络,有时候vpn也会提高速度。
94、当tableView占不满一屏时,去除下边多余的单元格
1 2 |
|
95、isKindOfClass和isMemberOfClass的区别
1 2 |
|
96、__block
当一个局部变量需要在block里改变时,需要在定义时加上__block修饰,具体请看官方文档 http://developer.apple.com/library/ios/documentation/cocoa/Conceptual/Blocks/Articles/bxVariables.html#//apple_ref/doc/uid/TP40007502-CH6-SW6
97、-[ViewController aMethod:]: unrecognized selector sent to instance 0x7fe91e607fb0
这是一个经典错误,ViewController不能响应aMethod这个方法,错误原因可能viewController文件中没有实现aMethod这个方法
98、UITableView () failed to obtain a cell from its dataSource ()
这个错误原因是tableView的代理方法-tableView:cellForRowAtIndexPath:需要返回一个UITableViewCell,而你返回了一个nil。另外这个地方返回值不是UITableViewCell类型也会导致崩溃
99、约束如何做UIView动画?
- 1、把需要改的约束Constraint拖条线出来,成为属性
- 2、在需要动画的地方加入代码,改变此属性的constant属性
- 3、开始做UIView动画,动画里边调用layoutIfNeeded方法
1 2 3 4 5 |
|
100、从NSURL中拿到链接字符串
1 |
|
101、将tableView滚动到顶部
1 2 3 |
|
102、如果用addTarget:action:forControlEvents:方法为一个button添加了很多点击事件,在某个时刻想一次删除怎么办?只需要调用下边这句代码
1 |
|
103、某个字体的高度
1 |
|
104、删除某个view所有的子视图
1 2 |
|
105、删除NSUserDefaults所有记录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
106、禁用系统滑动返回功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
107、模拟器报错
模拟器报错
解决办法:
打开模拟器->Simulator->Reset Content and Settings...
如果不行,就重启试试!
108、自定义cell选中背景颜色
1 2 3 |
|
109、UILabel设置内边距
1 2 3 4 5 6 |
|
110、UILabel设置文字描边
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
111、使用模拟器截图
1 2 |
|
112、scrollView滚动到最下边
1 2 |
|
113、UIView背景颜色渐变
1 2 3 4 5 6 |
|
114、停止UIView动画
1 |
|
115、为UIView某个角添加圆角
1 2 3 4 5 6 |
|
116、删除Xcode Derived data缓存数据
依次点击Xcode -> Preferences -> location,然后点击 Derived data路径后到小箭头,删除这个文件夹下的数据就可以了,如图
Xcode Derived data
117、将一个view放置在其兄弟视图的最上面
1 |
|
118、将一个view放置在其兄弟视图的最下面
1 |
|
119、让手机震动一下
1 2 3 4 5 |
|
120、layoutSubviews方法什么时候调用?
- 1、init方法不会调用
- 2、addSubview方法等时候会调用
- 3、bounds改变的时候调用
- 4、scrollView滚动的时候会调用scrollView的layoutSubviews方法(所以不建议在scrollView的layoutSubviews方法中做复杂逻辑)
- 5、旋转设备的时候调用
- 6、子视图被移除的时候调用
参考请看:http://blog.logichigh.com/2011/03/16/when-does-layoutsubviews-get-called/
121、让UILabel在指定的地方换行
1 2 3 |
|
122、摇一摇功能
1 2 3 4 5 6 7 8 9 10 11 12 |
|
123、获取图片大小
1 2 |
|
124、获取view的坐标在整个window上的位置
1 2 3 4 |
|
125、提交App Store审核程序限制
您的应用程序的未压缩大小必须小于4GB。每个Mach-O可执行文件(例如app_name.app/app_name)不能超过这些限制:
对于MinimumOSVersion小于7.0的应用程序:TEXT二进制文件中所有部分的总数最多为80 MB 。
对于MinimumOSVersion7.x到8.x的应用程序:TEXT对于二进制文件中每个体系结构片段的每个片段,最大为60 MB 。
对于MinimumOSVersion9.0或更高版本的应用程序:__TEXT二进制文件中所有部分的总数最多为500 MB 。参阅:iTunes Connect开发者指南
126、修改UISegmentedControl的字体大小
1 |
|
127、在非ViewController的地方弹出UIAlertController对话框
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
128、获取一个view所属的控制器
1 2 3 4 5 6 7 8 9 10 |
|
129、UIImage和base64互转
1 2 3 4 5 6 7 8 9 |
|
130、UIWebView设置背景透明
1 2 |
|
131、判断NSDate是不是今天
1 2 3 4 5 6 7 8 |
|
132、设置tableView分割线颜色
1 |
|
133、设置屏幕方向
1 |
|
134、比较两个颜色是否相等
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
135、tableViewCell分割线顶到头
1 2 3 4 5 6 7 8 9 10 |
|
136、不让控制器的view随着控制器的xib拉伸或压缩
1 |
|
137、cocoaPods报错 : [!] Unable to add a source with url https://github.com/CocoaPods/Specs.git named master-1.
You can try adding it manually in ~/.cocoapods/repos or via pod repo add.
解决方法:这是因为电脑里安装了另外一个Xcode导致cocoapods找不到路径了
在终端执行 sudo xcode-select -switch /Applications/Xcode.app 即可
138、安装cocoapods的时候出现 ERROR: While executing gem ... (Errno::EPERM)
1 |
|
解决办法:直接在终端执行 sudo gem install -n /usr/local/bin cocoapods
139、在状态栏增加网络请求的菊花,类似safari加载网页的时候状态栏菊花
1 |
|
140、检查一个rect是否包含一个point
1 2 |
|
141、在指定的宽度下,让UILabel自动设置最佳font
1 |
|
142、将一个image保存在相册中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
143、修改cell.imageView的大小
1 2 3 4 5 6 7 |
|
144、为一个view添加虚线边框
1 2 3 4 5 6 7 |
|
145、UITextView中打开或禁用复制,剪切,选择,全选等功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|