美文网首页
iOS label根据文字来确定宽高

iOS label根据文字来确定宽高

作者: Riven2018 | 来源:发表于2018-01-05 17:39 被阅读0次

1.

CGRect tmpRect = [label.text boundingRectWithSize:CGSizeMake(XScreenWidth-30-30, 1000) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:[NSDictionary dictionaryWithObjectsAndKeys:label.font,NSFontAttributeName, nil] context:nil];

高度=tmpRect.size.height

但是有时候这样不对,因为我再4S上出现显示未完全的情况。这是因为获取到的应该是有余数,但是把末尾余数去掉了。所以可以利用这个方法来解决,就是向上取整。

ceilf(tmpRect.size.height) 就可以了

参考文章 :boundingRectWithSize计算文字高度不准问题


2.从二维码扫描中获取相关信息,并判断获取到的是否正确

            str = [str stringByReplacingOccurrencesOfString:@"sn=" withString:@"***"];

            strTest =@"***";

            str = [str stringByReplacingOccurrencesOfString:@"&wmac" withString:@"###"];

            NSRange star = [str rangeOfString:@"***"];//匹配得到的下标

            NSRange end = [str rangeOfString:@"###"];//匹配得到的下标

            NSLog(@"===str==%@",str);

            if (!([str rangeOfString:strTest].location+14 != NSNotFound)) {//判断是否为空

                str = [str substringWithRange:NSMakeRange(star.location+3,14)];//截取范围内的字符串

            }else{

                str = @"";

            }


3.在NSUserDefaults 存储可变数组的问题解决

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

NSMutableArray *_arr = [NSMutableArray arrayWithCapacity:0];

NSMutableArray *mutableCopyArr = [NSMutableArray arrayWithCapacity:0];

mutableCopyArr = [userDefaults objectForKey:@"DeviceSN"];

  _arr = [mutableCopyArr mutableCopy];

读取到的数据必须要用另一个数组接收,不然就会直接报错。

这些都是错的~~~如果想要修改保存过的数据,还是用字符串保险,也就是拼接。

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

strMut = [deviceStr stringByAppendingString:[NSString stringWithFormat:@"%@*",_manager.ScanID]];

[userDefaults removeObjectForKey:@"Device"];

 [[NSUserDefaults standardUserDefaults]synchronize];

 [[NSUserDefaults standardUserDefaults ]setObject:strMut forKey:@"Device"];

 [[NSUserDefaults standardUserDefaults]synchronize];

  NSLog(@"===strmut%@",[userDefaults objectForKey:@"Device"]);

这句打印的话很重要,没有的话可能存储不了,在删了之后


4.uitableview隐藏多余的cell横线

_tableView.tableFooterView = [[UIView alloc] init];


相关文章

网友评论

      本文标题:iOS label根据文字来确定宽高

      本文链接:https://www.haomeiwen.com/subject/vgpsnxtx.html