iOS处理动态字符串长度(兼容6、7)

NSString *saved = _name.text;

CGSize size = CGSizeZero;

if ([[[UIDevice
currentDevice] systemVersion]
floatValue] >=7.0) {

size = [saved boundingRectWithSize:CGSizeMake(150, 70)
options:NSStringDrawingUsesFontLeading |
NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:FONT(13)}
context:nil].size;

} else {

size = [saved sizeWithFont:FONT(13)
constrainedToSize:CGSizeMake(MAXFLOAT, 30)];

}

_name.width = size.width;

时间: 2024-08-25 22:06:36

iOS处理动态字符串长度(兼容6、7)的相关文章

IOS 获取中英文字符串长度

//得到中英文混合字符串长度 方法1 - (int)convertToInt:(NSString*)strtemp { int strlength = 0; char* p = (char*)[strtemp cStringUsingEncoding:NSUnicodeStringEncoding]; for (int i=0 ; i<[strtemp lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) { if (*p) { p+

iOS小知识:计算字符串长度(如果有表情,表情的长度为1)

在做项目的时候,textField能够输入表情,但是iOS的表情是占两个字符的,再计算字符串长度的时候就和想象的不一样了,所以用了次方法会将表情的长度转成1,最后得到的字符串的长度就是能看到的实际的长度. 方法中用到了iOS的表情编码,看不懂具体是什么,但是知道那些就是表情的编码,根据这个编码就能够找到具体是那个表情了. 此方法参考自:http://blog.csdn.net/liujinlongxa/article/details/44207003 - (NSInteger)getString

iOS 根据字符串样式、字符串长度计算字符串所占大小

通过Category为NSString添加方法: 1. 根据字符串样式.字符串长度计算字符串所占大小 /** *  @param font     字符串样式 *  @param maxWidth 指定字符串长度 */- (CGSize)sizeWithFont:(UIFont *)font maxWidth:(CGFloat)maxWidth { // 获取文字样式 NSMutableDictionary *attrs = [NSMutableDictionary dictionary]; a

iOS本地动态验证码生成-b

用于ios本地动态生成验证码,效果如下: demo.gif 导入CoreGraphics.framework用于绘制图形 封装UIView,便捷使用,代码如下: AuthcodeView.h #import <UIKit/UIKit.h> @interface AuthcodeView : UIView @property (strong, nonatomic) NSArray *dataArray;//字符素材数组 @property (strong, nonatomic) NSMutabl

关于redis中SDS简单动态字符串

1.SDS 定义 在C语言中,字符串是以’\0’字符结尾(NULL结束符)的字符数组来存储的,通常表达为字符指针的形式(char *).它不允许字节0出现在字符串中间,因此,它不能用来存储任意的二进制数据. sds的类型定义 typedef char *sds; 肯定有人感到困惑了,竟然sds就等同于char *? sds和传统的C语言字符串保持类型兼容,因此它们的类型定义是一样的,都是char *,在有些情况下,需要传入一个C语言字符串的地方,也确实可以传入一个sds. 但是sds和char

iOS中的字符串NSString

创建一个字符串对象: NSstring * str1 = @"hello world"; NSString * str = [[NSString alloc]initWithString:@"hello world!"]; NSString * str_1 = [[NSString alloc]initWithUTF8String:"hello world"];//把C的字符串转化为OC的字符串 int a = 123; NSString * s

Redis设计与实现 (一): 简单动态字符串

1.定义 Redis没有使用C语言的字符串,  C语言的字符串只会用在不需要对字符串修改而只使用其值地方. Redis使用SDS表示字符串, 结构定义 : typedef char *sds; struct sdshdr { // 记录 buf 数组中已使用字节的数量 // 等于 SDS 所保存字符串的长度 int len; // 记录 buf 数组中未使用字节的数量 int free; // 字节数组,用于保存字符串 char buf[]; }; SDS也是以'\0'表示结束, 这一个字节不会

SDS(Simple Dynamic String)一个简易动态字符串库

SDS(Simple Dynamic Strings)是一个C语言字符串库,设计中增加了从堆上分配内存的字符串,来扩充有限的libc字符处理的功能,使得: 使用更简便 二进制安全 计算更有效率 而且仍旧…兼容一般的C字符串功能 它使用另一种设计来实现,不用C结构体来表现一个字符串,而是使用一个二进制的前缀(prefix),保存在实际的指向字符串的指针之前,SDS将其返回给用户. C 1 2 3 4 5 +--------+-------------------------------+-----

redis 简单动态字符串 SDS

redis 没有直接使用c语言传统的字符串表示,而是自己构建了简单动态字符串(SDS)的抽象类型,并将SDS用作redis的默认字符串表示 redis的数据库里面,包含字符串值的键值对在底层都是SDS实现的 执行 rpush fruits "apple" "banana" "pits" 那么redis将在数据库中创建一个新的键值对,其中: 1.键值对的键是一个字符串对象,对象的底层实现是一个保存了字符串的fruits的SDS 2.键值对的值是一个