今天上午讲了昨天点作业,然后讲了自定义cell的高度随显示内容的高度变化而变化,主要解决步骤以label为例:1、通过
CGRect rect= [label.textboundingRectWithSize:CGSizeMake(label.bounds.size.width,CGFLOAT_MAX)options:NSStringDrawingUsesLineFragmentOriginattributes:@{NSFontAttributeName:label.font}context:nil];
方法获取文本内容的高度和宽度;CGFLOAT_MAX最大,@{NSFontAttributeName:label.font} 字体类型获取文本高度;
2、修改label某frame一个值: CGRectframe = label.frame; frame.size.height=rect.size.height;
3、刷新label高度; label.frame= frame;
4、设置cell高度为文本高度+cell原来高度;
-(CGFloat)tableView:(UITableView *)tableViewheightForRowAtIndexPath:(NSIndexPath*)indexPath{
Weibo*w = self.weibos[indexPath.row];
CGRectrect = [w.textboundingRectWithSize:CGSizeMake(225,CGFLOAT_MAX)options:NSStringDrawingUsesLineFragmentOriginattributes:@{NSFontAttributeName:[UIFontsystemFontOfSize:17]}context:nil];
returnrect.size.height+90-20; }
下午讲递归
NSString* result = @""; NSString* prevChar = @""; NSUInteger slen = [json length]; BOOL needrec = NO; NSString* lStr = @""; for (int i=0; i < slen; i++) { NSString* sc = [json substringWithRange:NSMakeRange(i,1)]; if ([sc isEqualToString:@"{"] && (!needrec)) { if ([result length]>0) { // delete left and right space [result stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; if ([[result substringWithRange:NSMakeRange(0,1)] isEqualToString:@","]) { result = [result substringWithRange:NSMakeRange(1,[result length]-1)]; } NSLog(@"add (%d)deep json object :%@ ",level,result); result = @""; } else { NSLog(@"add (%d)deep json object : object name is null",level); } lStr = [json substringWithRange:NSMakeRange(i+1,slen-i-1)]; break; } if ([sc isEqualToString:@"["] && (!needrec)) { if ([result length]>0) { // delete left and right space [result stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; if ([[result substringWithRange:NSMakeRange(0,1)] isEqualToString:@","]) { result = [result substringWithRange:NSMakeRange(1,[result length]-1)]; } NSLog(@"add (%d)deep json array : %@",level,result); result = @""; } else { NSLog(@"add (%d)deep json array : array name is null",level); } lStr = [json substringWithRange:NSMakeRange(i+1,slen-i-1)]; break; } if ([sc isEqualToString:@"}"] && (!needrec)) { NSLog(@"Add (%d) a member%@",level,result); level = level -1; result = @""; continue; } if ([sc isEqualToString:@"]"] && (!needrec)) { NSLog(@"Add (%d) a array member%@",level,result); level = level -1; result = @""; continue ; } if ([sc isEqualToString:@"\""] && (![prevChar isEqualToString:@"\\"])) { needrec = !needrec; } result = [result stringByAppendingFormat:@"%@",sc]; prevChar = sc; }
// Loop
if (0 < [lStr length]) { [self testPetch:lStr forDeep:level+1]; } return ;}
学习ios 重要还是要理清楚思路 在做或者看老师代码的时候 自己多想想为什么 不要自己看着就抄 另外还是要推荐一下 蓝懿IOS这个培训机构 和刘国斌老师刘国斌老师还是很有名气的,听朋友说刘老师成立了蓝懿iOS,,老师讲课方式很独特,能够尽量让每个人都能弄明白,有的比较难懂的地方,如果有的地方还是不懂得话,老师会换个其它方法再讲解,这对于我们这些学习iOS的同学是非常好的,多种方式的讲解会理解得更全面,这个必须得给个赞,嘻嘻,还有就是这里的学习环境很好,很安静,可以很安心的学习,安静的环境是学习的基础,小班讲课,每个班20几个学生,学习氛围非常好,每天都学到9点多才离开教室,练习的时间很充裕,而且如果在练习的过程中有什么困难,随时可以向老师求助,不像其它机构,通过视频教学,有的甚至学完之后都看不到讲师本人,问点问题都不方便,这就是蓝懿与其它机构的区别,相信在刘国斌老师的细心指导下,每个蓝懿学员都能找到满意的工作,加油!
写博客第三十天;
QQ:565803433