今天又到了练习日 我们把这几天学的在复习一下:
准备工作:通过把UITableViewController的TableViewController.h和TableViewController.m文件删除,创建新的fiel继承于UITableViewController,然后在SB中把view删除,拖进一个TableViewController,点剪头,关联与TableViewController!
1、直接拖进cell,然后标记cell的身份;然后就可以用了,此时cell编辑如下:
- (UITableViewCell *)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath*)indexPath {
UITableViewCell*cell = [tableView dequeueReusableCellWithIdentifier:@"cell"forIndexPath:indexPath];
NSArray*keys = self.likeDic.allKeys;
cell.textLabel.text =keys[indexPath.row];
returncell;}
2、纯代码创建:
HeroCell*cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if (!cell) {
cell =[[HeroCell alloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:@"cell"];
cell.priceLabel.text =h.price;
} return cell;
}
3、通过xib(nib)创建:创建UITableViewCell,然后关联标记,后同2的编辑;
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