http://shfzhzhr.iteye.com/blog/1808000
code中默认的UILabel是垂直居中对齐的,如果你的UILabel高度有多行,当内容少的时候,会自动垂直居中。
比较郁闷的是,UILabel并不提供设置其垂直对齐方式的选项。所以如果你想让你的文字顶部对齐,那么就需要自己想办法了。
CGSize maximumSize =CGSizeMake(300,9999);
NSString*dateString =@"The date today is January 1st, 1999";
UIFont*dateFont =[UIFont fontWithName:@"Helvetica" size:14];
CGSize dateStringSize =[dateString sizeWithFont:dateFont
constrainedToSize:maximumSize
lineBreakMode:self.dateLabel.lineBreakMode];
CGRect dateFrame =CGRectMake(10,10,300, dateStringSize.height);
self.dateLabel.frame = dateFrame;
方法二:
for(int i=0; i<newLinesToPad; i++)
self.text =[self.text stringByAppendingString:@"\n "];
方法三:
最正统的方法,利用objective-c的category特性,修改UILabel的绘制代码。示例代码如下:
// -- file: UILabel+VerticalAlign.h
#pragma mark VerticalAlign
@interfaceUILabel(VerticalAlign)
-(void)alignTop;
-(void)alignBottom;
@end
// -- file: UILabel+VerticalAlign.m
@implementationUILabel(VerticalAlign)
-(void)alignTop {
CGSize fontSize =[self.text sizeWithFont:self.font];
double finalHeight = fontSize.height *self.numberOfLines;
double finalWidth =self.frame.size.width;//expected width of label
CGSize theStringSize =[self.text sizeWithFont:self.font constrainedToSize:CGSizeMake(finalWidth, finalHeight)lineBreakMode:self.lineBreakMode];
int newLinesToPad =(finalHeight - theStringSize.height)/ fontSize.height;
for(int i=0; i<newLinesToPad; i++)
self.text =[self.text stringByAppendingString:@"\n "];
}
-(void)alignBottom {
CGSize fontSize =[self.text sizeWithFont:self.font];
double finalHeight = fontSize.height *self.numberOfLines;
double finalWidth =self.frame.size.width;//expected width of label
CGSize theStringSize =[self.text sizeWithFont:self.font constrainedToSize:CGSizeMake(finalWidth, finalHeight)lineBreakMode:self.lineBreakMode];
int newLinesToPad =(finalHeight - theStringSize.height)/ fontSize.height;
for(int i=0; i<newLinesToPad; i++)
self.text =[NSString stringWithFormat:@" \n%@",self.text];
}
@end
相关推荐
本分类完善UIlabel文字对齐方式,包括上对齐,上居中对齐,上两端对齐,中、下对齐方式跟上一样
标题已经写明,例子代码里有,用法可以customlabel.verticalAlignment=CustomLabel.VerticalAlignment.VerticalAlignmentBottom底部对齐
iOS中UILabel设置居上对齐、居中对齐、居下对齐 在iOS中默认的UILabel中的文字在竖直方向上只能居中对齐,博主参考国外网站,从UILabel继承了一个新类,实现了居上对齐,居中对齐,居下对齐。 具体如下: // // ...
UILabel、UILabel基本用法、UILabel详解,UILabel常用方法
废话不多说了,直接给大家贴代码了,具体代码如下所示: -(NSAttributedString *)setTextString:(NSString *)text { NSMutableAttributedString *mAbStr = [[NSMutableAttributedString alloc] initWithString:text...
动态设置label高度,及设置label顶端对齐等。
原生的label不好实现两端对齐,二期实现两端对齐也把每个字母分的很开,这个项目我把字母、数字、逗号等视为一个字,汉子为一个字,这样来去绘制两端对齐,你们也可以自己改动一下项目中的一个宏,来设置你们自己想...
JTImageLabel, 在iOS上,JTImageLabel同时保留UILabel和 UIImageView JTImageLabel JTImageLabel是一个简单的视图,它包含一个 UILabel 和一个 UIImageView,即使你更改了 UILabel的对齐方式。安装使用 CocoaPods...
ios uilabel的代码 ios uilabel的代码 ios uilabel的代码 ios uilabel的代码 ios uilabel的代码 ios uilabel的代码
UIButton,UILabel文字旋转(倾斜),UIButton,UILabel文字旋转(倾斜)
微信评论点击确定所点击的用户,获取UIlabel点击处的文字
UILabel 和UITextField 的常用api 介绍和使用
简单方便的给UILabel内容中某几个文字添加点击事件,实现定制要求
当前 UILabel 类为方法的实现类,针对声明类中对应的封装方法进行具体的相关方法的逻辑实现处理,最终将处理结果返回。
iOS UIlabel 闪烁
UILabel的删除线效果,主要是继承UiLabel类后重写方法得到 用法跟UILabelg一样,异常简单,多了一个 是否加上删除线的 属性而已
整个工程怎么不能直接上传呢,我就把主要代码的类上传了
UIlabel根据文本、字体获得label宽度;自适应宽高