如何在uilabel 显示两行中显示多行文字,且每行只显示一句

4037人阅读
对于有多行文字的UILabel而言,需要设置UILabel的numberoflines属性,此属性默认是1,也就是只显示一行,多余的会以尾部,中间的方式进行截断,具体要看你的初始设置。
在这里可以将其设置为numberoflines=0, 不限制label的行数,以实际文字数来确定行数。但是在解决行数后,又发现文字会上下居中对齐,而我是要顶对齐,解决此问题的方法是使用uilabel的sizetofit方法,将此方法发送给对象即可。
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:91527次
积分:1237
积分:1237
排名:第18484名
原创:27篇
转载:44篇
(3)(4)(2)(3)(1)(7)(8)(9)(8)(8)(19)如何在UILabel中显示→?_unity3d吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:31,939贴子:
如何在UILabel中显示→?收藏
如何在UILabel中显示→?四个方向键用箭头表示
。该怎么做?
人工置顶!!!!!
用UISprite不好么?
加载动态字体……然后就能用了
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或11:16 提问
添加多个UILabel,其中每个label有不同行
应用中有一个视图,我想设置一些标签,但是每个标签的数量和文本长度都不一样。
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 100, 300, 50)];
label.text = @"Varying text length here";
label.numberOfLines = 0;
[label sizeToFit];
[[self view] addSubview:label];
每个标签有1-4行,通过编程的方法添加新标签到现有标签下方,间距为25。不知道怎么实现?
按赞数排序
这里只说对于一个标签的高度的判断,你可以根据第一个标签的高度去设置第二个标签的位置,LABLE_WIDTH标签的长度,FONT_SIZE标签中字体的大小。
NSString *s=@"aaaaaaasdgaiugfiafhoauifhowaruifhoauihgvabviapbviaudvbiadfuviufvapiufhvial";
if (s.length%(LABLE_WIDTH/FONT_SIZE)==0) {
a=s.length/(LABLE_WIDTH/FONT_SIZE);
a=s.length/(LABLE_WIDTH/FONT_SIZE)+1;
UILabel *lab=[[[UILabel alloc]initWithFrame:CGRectMake(5, b, LABLE_WIDTH, a*FONT_SIZE_HIGHT)]autorelease];
lab.font=[UIFont systemFontOfSize:FONT_SIZE];
lab.numberOfLines=a;
lab.text=s;
这样就可以让标签的行数与高度根据内容来定,然后根据这个标签去确定下一个标签的位置就ok了。
CGFloat offset = 25.0f;
CGRect frame1 = CGRectMake(10, 100, 30, 50);
UILabel *label = [[UILabel alloc] initWithFrame:frame1];
label.text = @"Varying text length here";
label.numberOfLines = 0;
[label sizeToFit];
[[self view] addSubview:label];
CGRect frame2 = CGRectMake(10,
label.frame.origin.y + label.frame.size.height + offset,
UILabel *label2 = [[UILabel alloc] initWithFrame:frame2];
label2.text = @"Varying text length here";
label2.numberOfLines = 0;
[label2 sizeToFit];
[[self view] addSubview:label2];
这可以实现当前标签框架+25 设置下一个标签的框架
其他相似问题
相关参考资料主题 : UILabel,多行显示时,如何保持顶端对齐?
级别: 圣骑士
可可豆: 1984 CB
威望: 1901 点
在线时间: 311(时)
发自: Web Page
UILabel,多行显示时,如何保持顶端对齐?&&&
不知道是哪个属性设置的了。现在问题是,当数据多行时,显示内容会上下移动。
级别: 论坛版主
发帖: 1029
可可豆: 123897 CB
威望: 125902 点
在线时间: 2425(时)
发自: Web Page
&&&&&&&&&&&&&&&&&&&&[label setContentMode:UIViewContentModeTop];
级别: 论坛版主
发帖: 1029
可可豆: 123897 CB
威望: 125902 点
在线时间: 2425(时)
发自: Web Page
/bbs/read.php?tid=
Label.frame = [Label textRectForBounds:Label.frame limitedToNumberOfLines:0];或[Label sizeToFit];或以下转自Apple discussions网////&&VerticallyAlignedLabel.h//#import &Foundation/Foundation.h&typedef enum VerticalAlignment {&&&&VerticalAlignmentTop,&&&&VerticalAlignmentMiddle,&&&&VerticalAlignmentBottom,} VerticalA@interface VerticallyAlignedLabel : UILabel {@private&&&&VerticalAlignment verticalAlignment_;}@property (nonatomic, assign) VerticalAlignment verticalA@end////&&VerticallyAlignedLabel.m//#import &VerticallyAlignedLabel.h&@implementation VerticallyAlignedLabel@synthesize verticalAlignment = verticalAlignment_;- (id)initWithFrame:(CGRect)frame {&&&&if (self = [super initWithFrame:frame]) {&&&&&&&&self.verticalAlignment = VerticalAlignmentM&&&&}&&&&}- (void)setVerticalAlignment:(VerticalAlignment)verticalAlignment {&&&&verticalAlignment_ = verticalA&&&&[self setNeedsDisplay];}- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines {&&&&CGRect textRect = [super textRectForBounds:bounds limitedToNumberOfLines:numberOfLines];&&&&switch (self.verticalAlignment) {&&&&&&&&case VerticalAlignmentTop:&&&&&&&&&&&&textRect.origin.y = bounds.origin.y;&&&&&&&&&&&&&&&&&&&&case VerticalAlignmentBottom:&&&&&&&&&&&&textRect.origin.y = bounds.origin.y + bounds.size.height - textRect.size.&&&&&&&&&&&&&&&&&&&&case VerticalAlignmentMiddle:&&&&&&&&&&&&// Fall through.&&&&&&&&default:&&&&&&&&&&&&textRect.origin.y = bounds.origin.y + (bounds.size.height - textRect.size.height) / 2.0;&&&&}&&&&return textR}-(void)drawTextInRect:(CGRect)requestedRect {&&&&CGRect actualRect = [self textRectForBounds:requestedRect limitedToNumberOfLines:self.numberOfLines];&&&&[super drawTextInRect:actualRect];}@end
级别: 精灵王
可可豆: 4000 CB
威望: 4000 点
在线时间: 571(时)
发自: Web Page
mark mark mark mark mark
关注本帖(如果有新回复会站内信通知您)
3*3+1 正确答案:10
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版}

我要回帖

更多关于 uilabel 文字居上 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信