objective c-添加多个UILabel,其中每个label有不同行

问题描述

添加多个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标签中字体的大小。

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了。

解决方案二:

试试:

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,
                           300,
                           50);

UILabel *label2 = [[UILabel alloc] initWithFrame:frame2];
label2.text = @"Varying text length here";
label2.numberOfLines = 0;
[label2 sizeToFit];
[[self view] addSubview:label2];

这可以实现当前标签框架+25 设置下一个标签的框架

时间: 2024-10-31 23:47:37

objective c-添加多个UILabel,其中每个label有不同行的相关文章

ios-UINavigationBar添加2个UILabel

问题描述 UINavigationBar添加2个UILabel 我有一个自定义UINavigationBar,其中在titleView有两行label: UILabel *navBarLabel = [[UILabel alloc] initWithFrame:CGRectZero]; UINavigationItem *item = [[UINavigationItem alloc] init]; navBarLabel.backgroundColor = [UIColor clearColo

objective c-UINavigationItem:添加按钮

问题描述 UINavigationItem:添加按钮 如何在navigationItem中添加新按钮?需要在右侧按钮附近: 左右按钮: self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:_cancelButton]; self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomVi

objective c-tabbarC添加到navC时隐藏后退键

问题描述 tabbarC添加到navC时隐藏后退键 导航控制器navC,视图控制器ViewC是由根控制器推出的,视图控制器中隐藏后退键: [[self navigationItem] setHidesBackButton:YES]; 在ViewC之后推出标签栏控制器tabbarC.在视图控制器中tabbarC的第一个tab中,隐藏后退键: [[[self tabBarController] navigationItem] setHidesBackButton:YES]; 但是后退键还是显示,如果

教大家如何给UITextView添加placeholder扩展

如何扩展UITextView以追加placeholder功能呢? 我们的需求是:追加placeholder功能 方案讨论: 通过继承UITextView的方式 通过扩展UITextView的方式 分析:方案1使用继承方式实现起来更简单,但是使用起来就没有那么方便:方案2 使用扩展的方式,实现起来稍比前者复杂,但是外部使用起来更简单 方案定位:采用扩展的方式,以极简的风格作为参考依据. Tip:所谓极简,即对外接口最简,对内部可以很复杂 扩展头文件 #import <UIKit/UIKit.h>

iOS - UILabel

前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UILabel : UIView <NSCoding> @available(iOS 2.0, *) public class UILabel : UIView, NSCoding 实际上 label 就是一个可以显示文字的视图控件. 1.Label 的创建 Objective-C // 实例化 label 对象 UILabel *label = [[UILabel alloc] initWithFrame:C

ttributed tring-UIScrollView 添加一个TTTAttributedLabel,滑动卡顿

问题描述 UIScrollView 添加一个TTTAttributedLabel,滑动卡顿 妹子新手一枚, 在UIScrollView上添加了一个TTTAttributedLabel,一旦label addLinkToURL后,手指触到label进行滑动就会出现严重卡顿,CPU直接100%,不加addLinkToURL就不会如此,查了下好像是判别手势是否在URL上造成的,请问要如何解决,是不是处理的方法不对,或者有没有给label添加自动识别的可点击url的方法呢?????? 解决方案 http

swift网络编程入门应用:天气预报

首先在Main.storyborad中添加并设置好三个label做简单的界面显示: 1 import UIKit 2 3 //1.construct a constructs 4 struct Weather { 5 var city: String? 6 var weather: String? 7 var temp: String? 8 }//为什么不实用class呢,因为结构体初始化方便,不用写初始化方法 9 10 11 12 class ViewController: UIViewCon

iOS中 本地通知/本地通知详解

版权声明:本文为博主原创文章,未经博主允许不得转载. 布局如下:(重点讲本地通知) 每日更新关注:http://weibo.com/hanjunqiang  新浪微博 Notification是智能手机应用编程中非常常用的一种传递信息的机制,而且可以非常好的节省资源,不用消耗资源来不停地检查信息状态(Pooling),在iOS下应用分为两种不同的Notification种类,本地和远程.本地的Notification由iOS下NotificationManager统一管理,只需要将封装好的本地N

iOS界面布局之三——纯代码的autoLayout及布局动画

iOS界面布局之三--纯代码的autoLayout及布局动画 一.引言         关于界面布局,apple的策略已经趋于成熟,autolayout的优势在开发中也已经展现的淋漓尽致.除了使用storyBoard进行布局约束的拖拽,有时我们也需要在代码中进行autolayout的布局设置,Masonry库可以方便的创建约束属性,实际上,我们也没有必要再使用系统原生的代码来创建和设置约束,这篇博客只作为使用的方法备忘.前几篇布局介绍的链接如下: 使用autoresizing进行界面布局:htt