bluetooth99 2013-01-14 03:16 采纳率: 0%
浏览 3273
已采纳

添加多个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。不知道怎么实现?

  • 写回答

2条回答

  • lwq421336220 2013-01-14 04:36
    关注

    这里只说对于一个标签的高度的判断,你可以根据第一个标签的高度去设置第二个标签的位置,LABLE_WIDTH标签的长度,FONT_SIZE标签中字体的大小。

    int a=0;
    NSString *s=@"aaaaaaasdgaiugfiafhoauifhowaruifhoauihgvabviapbviaudvbiadfuviufvapiufhvial";
            if (s.length%(LABLE_WIDTH/FONT_SIZE)==0) {
                a=s.length/(LABLE_WIDTH/FONT_SIZE);
            }else {
                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了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器