总结:iOS中的小坑

本文主要用于自己记录一些我在开发当中有意无意收集的一下小技巧或者代码段。
如有版权问题请告知,我将尽快删除。(大部分也是我从度娘搜罗而来)
如果有错误的地方,请诸位帮忙提醒,感激不尽。
文中代码仅供参考,并不能作为实在的开发中的源码,而且本人不添加使用环境,请读者自行理解。
1.为View添加渐变色。
<pre>CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = rect;

//渐变色颜色数组
gradient.colors = [NSArray arrayWithObjects:(id)[UIColor redColor].CGColor,
(id)[UIColor yellowColor].CGColor,
(id)[UIColor greenColor].CGColor,nil];

[self.layer insertSublayer:gradient atIndex:0];</pre></code>

2.画一条虚线
<pre>CGContextRef context = UIGraphicsGetCurrentContext();
CGContextBeginPath(context);

//设置线宽

CGContextSetLineWidth(context, 0.5);

CGContextSetStrokeColorWithColor(context, CustomColor(198, 198, 198).CGColor);

CGFloat lengths[] = {15,5};

//注意2(count)的值等于lengths数组的长度

CGContextSetLineDash(context, 0, lengths, 2);

CGContextMoveToPoint(context, 0, TopHeight);

CGContextAddLineToPoint(context, ScreenWidth - 20, TopHeight);

CGContextStrokePath(context);

CGContextClosePath(context);</pre>

3.这几天的进度基本做完了,一直没有敲代码。在这里推荐一篇文章吧。也是我一直觉得非常好的文章。、
[关于View以及程序的架构。]
http://casatwy.com/iosying-yong-jia-gou-tan-viewceng-de-zu-zhi-he-diao-yong-fang-an.html
4.今天在做一个自定义的CollectionView的时候发生了一件很郁闷的事情。
didSelectRowAtIndexPath不响应了。。绞尽脑汁冥思苦想,终于发现问题所在。
<pre>if (!_collectionView) {

UICollectionViewFlowLayout *laout = [[UICollectionViewFlowLayout alloc]init];

[laout setScrollDirection:UICollectionViewScrollDirectionVertical];

_collectionView = [[UICollectionView alloc]initWithFrame:CGRectZero collectionViewLayout:laout];

_collectionView.backgroundColor = [UIColor whiteColor];

_collectionView.delegate = self;

_collectionView.dataSource = self;

[_collectionView registerClass:[StationSelectMoneyCollectionCell class] forCellWithReuseIdentifier:collectionCellID];

}</pre>
//因为我的CollectionView是作为一个TableView 的Cell存在的,而且是动态布局的,我把它写在if里,于是我无法改变CollectionView的大小。所以是不可能响应到的。。所以我把它的布局写在外面,完美解决。
_collectionView.frame = CGRectMake(10, 10, ScreenWidth - 20, _height - 10);

5.今天做了一个东西,觉得很神奇。分享出来。(ps:自己做的)


一个类似于支付宝支付密码的东西

在这里主要说一下思路。因为源码还没有完全脱离出来所以不能贴出Demo了。
上面的东西不用多说了。
1).主要在于密码输入的时候,在输入密码的地方的下层放置一个TextField,然后将一个ImageView盖在上面,创建出6个黑色的点,算好坐标,隐藏。
2).注册一个TextField 的通知UITextFieldTextDidChangeNotification。自定义监听方法。
3).截字,并且根据TextField的文字长度决定黑点的显示数量。
<pre>if (_textField.text.length > 6) {

_textField.text = [_textField.text substringToIndex:6];

}

for (UIImageView *image in _passwordImageView.subviews) {

image.hidden = YES;

}

for (NSInteger i = 0; i < _textField.text.length; i ++) {

UIImageView *sub = [_passwordImageView.subviews objectAtIndex:i];

sub.hidden = NO;

}</pre>
大体就是这样的。。如果大家有什么更好的办法欢迎补充~~~

6.关于文字长度的自适应方法。
偶然间发现
[str sizeWithFont:(UIFont *) constrainedToSize:(CGSize) lineBreakMode:(NSLineBreakMode)] 已经挂掉了。。所以在这里给出替代方法的使用方法。
<pre>NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];
paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
NSDictionary *attributes = @{NSFontAttributeName:[UIFont systemFontOfSize:font],
NSParagraphStyleAttributeName:paragraphStyle.copy};
CGSize size = [str boundingRectWithSize:allowSize
options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading
attributes:attributes context:nil].size;</pre>
哎呦,不错呦。。

7.禁止多个按钮同时点击
对于测试组的同事经常提的bug:两个手指同时点击界面上的多个可点击的视图而出现各种错误。
有官方的解决方法,将不允许同时点击的视图都设置下参数:
<pre>[view setExclusiveTouch:YES];</pre>

8.获取当前对象的类名。
如果只是NSLog输出的话可以用NSStringFromClass([selfclass]);
如果是用来作为赋值或判断的话可以这么用:<pre><code>[NSString = stringWithUTF8String:object_getClassName(selfClass)];</pre></code>

9.关于iOS9有许多坑是毋庸置疑的。。。
下面让我们来看一下关于iOS9的适配吧~
1).关于iOS9的网络连接问题
在Info.plist中添加这个字段(是一个字典)NSAppTransportSecurity
在字典下添加这个字段(是一个Bool类型,原则YES)NSAllowsArbitraryLoads
2).关于友盟分享
友盟的SDK里是有的。
友盟的iOS9适配
3).如果你发现你的程序还有崩溃的话,那么你可以关闭BitCode功能

关闭BitCode功能

10.collectionView的cell之间的距离调整

storyBoard

11.用Storyboard实现简单的Cell高度自适应
在给Cell中内容添加约束的时候,如果某一个Label的高度是可变的,那么就给它设定一个最小值(假设它为一行)

在Controller中实现estimatedHeightForRowAtIndexPath:方法。返回Row的估算高度。然后就可以实现Cell的高度自适应了。(这里我使用的最小值)效果如下:

11.关于此证书签发者无效的问题
今天早上 上班发现钥匙串中的所有证书 都 提示此证书签发者无效
经查找得知系统证书WWDR在2016年2月14日失效,需要更新WWDR系统证书
下载证书地址:
https://developer.apple.com/certificationauthority/AppleWWDRCA.cer
下载之后 双击安装
到这 还需要一步
在登陆里面删除过期的证书 在系统里面 删除过期的证书 就可以完美的解决了。所有的证书 都可以使用了

12.关于这个 linker command failed with exit code 1 报错的小总结

报错

网上有很多关于这个错误的总结出现( linker command failed with exit code 1)错误总结
这里我只增加一点:需要在对应的.m文件里对已经声明的类添加(特指创建Model的时候、、)
<pre>@implementation
@end </pre>
13.self.view.bounds不准确
情景:在更改一个原来用XIB做的Controller,去掉所有的关联然后代码重写时发现:
在iPhone6的模拟器上输出self.view.bound时为 {{0, 0}, {320, 568}}
将对应Controller的XIB删除,完美解决
14.报错:The file “XXX” couldn’t be opened because you don’t have permission to view it.
原因之一:改错了Bundle identifer
错误原因

15.在日常开发中CollectionView的应用必不可少。Cell放置图片也是家常便饭。碰到一个问题,collectionView的重用机制是起作用的,但是在来回划动的过程中内存还是一直在增加。我的原因是因为我在Cell中使用了Image 作为接受对象,然后再Set方法里对ImageView进行复制。所以导致内存增加。解决办法很简单,将ImageView暴露出来,然后直接使用ImageView.image = image OK 解决。
待更新。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 11,947评论 4 60
  • 你好吗…… 青春年少,谁都有过懵懂无知的时期,可是,爱情却悄无声息地来过... 很多人都会说年少轻狂,...
    花棉木阅读 215评论 0 0
  • 呵呵 28号就要开始上班了。
    相相相柳阅读 176评论 0 0
  • 2012 -惊蛰之际,华南福州,烟雨绵绵,农林学府,朦胧覆盖,求学之子,限之于室,高矗而立,望雨而发。 黑云奔...
    破土的蚯蚓阅读 293评论 0 1