UILabel类的刨析
对于一个标签的UILabel类的属性,方法的详解。
首先初始化一个labelOne对象的两种方法:
//先初始化对象,然后在需要的时候设定labelOne在父视图上的位置和大小UILabel * labelOne = [[UILabel alloc]init];//UILabel * labelOne = [UILabel new];同样是初始化一个labelOne对象[labelOne setFrame:CGRectMake(100, 100, 300, 100)];//直接在初始化的时候设定labelOne在父视图上的位置和大小UILabel * labelOne = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 300, 100)];
设置labelOne的文字(包括文字的颜色、大小和文字的对齐方式)
labelOne.text = @"这是一个标签";//如果不设置文字颜色,则系统默认颜色为黑色labelOne.textColor = [UIColor blackColor];//如果不设置文字大小,则系统默认大小为17labelOne.font = [UIFont systemFontOfSize:17];//NSTextAlignmentLeft当前的文本相对于labelOne的frame是左对齐//NSTextAlignmentCenter当前的文本相对于labelOne的frame是居中 //NSTextAlignmentRight当前的文本相对于labelOne的frame是右对齐//NSTextAlignmentJustified最后一行自然对齐//NSTextAlignmentNatural默认对齐脚本labelOne.textAlignment = NSTextAlignmentLeft;
设置labelOne文本超出labelOne的size时文本的显示方式:
labelOne.lineBreakMode = NSLineBreakByWordWrapping;NSLineBreakByWordWrapping, //以空格为边界,保留单词(默认设置)NSLineBreakByCharWrapping, //保留字符(包括空格)NSLineBreakByClipping, //简单剪裁,到边界为止NSLineBreakByTruncatingHead, //按照"……标签"显示NSLineBreakByTruncatingTail, //按照"我……签"显示NSLineBreakByTruncatingMiddle //按照"我是……"显示
前三个类型这样说不太形象,但是当它和numberOfLines属性一起用的时候就可以很明显的看出来:
labelOne.numberOfLines = 0;//默认是1,当设置成0的时候如果文本长度超出labelOne的宽度且高度够的情况下会自动换行labelOne.lineBreakMode = NSLineBreakByWordWrapping;NSLineBreakByWordWrapping, //如果高度够的话,则会根据宽度和文本中单词的长度来决定一行放几个完整的单词,超出的部分则换行NSLineBreakByCharWrapping,//和第一个类似,不过是改成按照每一个字符来计算,也就是说在换行的时候不会自动保留完整的单词,有可能会将其拆开NSLineBreakByClipping,//目前亲测和第一个好像没有什么区别
设置labelOne文本的前景色和投影
//首先设置labelOne是否开启高亮状态,也就是前景色labelOne.highlighted = YES;//设置labelOne的前景色labelOne.highlightedTextColor = [UIColor redColor];//设置labelOne的投影的颜色labelOne.shadowColor = [UIColor blueColor];//设置labelOne的投影位置,也就是投影的偏移量labelOne.shadowOffset = CGSizeMake(0, 30);
设置labelOne的其他属性
//设置labelOne不可以编辑,本身labelOne在运行之后是不能被编辑的,这里设置这个属性为NO的时候labelOne的文本颜色会变成浅色。labelOne.enabled = NO;//设置labelOne是否可以交互,当设置为YES的时候,为labelOne添加手势之后就会响应手势的事件,默认是NO。labelOne.userInteractionEnabled = YES;//设置labelOne的文本最小的字体大小,当小于这个值的时候,会将字体大小设置为这个最小值。labelOne.minimumScaleFactor = 17;//自动调节labelOne的文本字体大小来适应labelOne的宽度,默认为NO。labelOne.adjustsFontSizeToFitWidth = YES;//微调文本的位置,有三个类型,默认是文本最上端与Label中线对齐。labelOne.baselineAdjustment = UIBaselineAdjustmentAlignBaselines;UIBaselineAdjustmentAlignBaselines //文本最上端与Label中线对齐,默认值UIBaselineAdjustmentAlignCenters //文本中线与Label中线对齐UIBaselineAdjustmentNone //文本最下端与Label中线对齐//计算在指定的范围内的labelOne显示当前行的文本的frame 第一个参数是指定的范围,第二个参数是labelOne限制多少行,亲测之后发现,目前第二个参数暂时不知道用意在什么地方,无论设置多少行,计算出来的结果只和指定的范围有关系。//labelOne textRectForBounds:labelOne.bounds limitedToNumberOfLines:2NSLog(@"%@",NSStringFromCGRect([labelOne textRectForBounds:labelOne.bounds limitedToNumberOfLines:2]));//在绘图的时候,将labelOne的文本绘制到指定的范围。- (void)drawTextInRect:(CGRect)rect
设置labelOne的边框和圆角
//设置labelOne的边框宽度labelOne.layer.borderWidth = 1;//设置labelOne的边框颜色labelOne.layer.borderColor = [UIColor lightGrayColor].CGColor;//设置labelOne的圆角半径labelOne.layer.cornerRadius = 5;//设置完圆角半径之后需要对labelOne进行剪裁,把超出的部分剪裁掉才能显示圆角的效果labelOne.layer.masksToBounds = YES;
以上是相对于Objective-C的UILabel类的属性和方法的总结,之后还会更新在Swift下的UILabel类的方法调用和属性调用的总结,谢谢大家支持。
关键字:产品经理
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!