IOS中Label根据上个label的内容设置下个label的frame

#import "ViewController.h"

@interface ViewController ()

@property(nonatomic,strong)UILabel *labelOne;

@property(nonatomic,strong)UILabel *labelTwo;

@property(nonatomic,copy)NSString *str;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

NSString *[email protected]"搜房网是全球最大的房地产家居网络平台,页面浏览量和访问量在同类网站中处于绝对领先地位。拥有9000名员工,网络业务覆盖300多个城市,在中国100多个城市拥有分公司和办公室。2010年9月搜房网(股票代码SFUN)在美国纽约证券交易所成功上市。搜房网是全球最大的房地产家居网络平台,页面浏览量和访问量在同类网站中处于绝对领先地位。拥有9000名员工,网络业务覆盖300多个城市,在中国100多个城市拥有分公司和办公室。2010年9月搜房网(股票代码SFUN)在美国纽约证券交易所成功上市。";

self.str=strOne;

self.labelOne=[[UILabel alloc]init];

self.labelOne.numberOfLines=0;

self.labelOne.font=[UIFont systemFontOfSize:14];

self.labelOne.textAlignment=NSTextAlignmentCenter;

self.labelOne.text=strOne;

self.labelTwo=[[UILabel alloc]init];

self.labelTwo.numberOfLines=0;

self.labelTwo.font=[UIFont systemFontOfSize:20];

self.labelTwo.textAlignment=NSTextAlignmentCenter;

self.labelTwo.text=strOne;

[self.view addSubview:self.labelOne];

[self.view addSubview:self.labelTwo];

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

-(void)viewWillAppear:(BOOL)animated{

CGRect labelOneFrame=[self.str boundingRectWithSize:CGSizeMake(200, 0) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14]} context:nil];[super viewWillAppear:animated];

CGPoint PointOne=CGPointMake(100, 50);

CGRect labelframe;

labelframe.origin=PointOne;

labelframe.size=labelOneFrame.size;

self.labelOne.frame=labelframe;

CGRect labelTwoFrame=[self.str boundingRectWithSize:CGSizeMake(200, 0) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:20]} context:nil];

CGPoint PointTwo=CGPointMake(self.labelOne.frame.origin.x, CGRectGetMaxY(self.labelOne.frame));

labelframe.origin=PointTwo;

labelframe.size=labelTwoFrame.size;

self.labelTwo.frame=labelframe;

}

@end

其实用自动布局就不用这么麻烦了

时间: 2024-10-10 17:34:41

IOS中Label根据上个label的内容设置下个label的frame的相关文章

iOS中使用Localizable.strings适配App在不同语言下文本的显示

iOS开发中,若是使用xib或storyboard搭建界面视图,视图中固定显示的文本内容可以用localized添加不同语言适配.但是在实际中会有动态加载的文本,这些文字的适配就需要NSLocalizedString等方法 举个例子说明 从网络获取的JSON数据大多为英文如album.book.software等,界面中显示这些文本可在设置文本时调用NSLocalizedString方法,具体来说使用 NSString *NSLocalizedString(NSString *key, NSSt

IOS中UserDefaults的用法(储存和调用设置信息)

1.适合存储轻量级的本地数据. 2.NSUserDefaults支持的数据格式有:NSNumber.NSData.NSDate.NSString.NSArray.NSDictionary.BOOL 3.以键值对的形式进行存储 4.存储时间为整体应用程序的存储时间,如果想需要删除,需要删除整体应用程序 //初始化一个userDefaults NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults set

IOS中Llabel整理

·UILable是iPhone界面最基本的控件,主要用来显示文本信息.·常用属性和方法有:1.创建CGRect rect = CGRectMake(100, 200, 50, 50);UILabel *label = [[UILabel alloc] initWithFrame:rect];2.text //设置和读取文本内容,默认为nillabel.text = @”文本信息”; //设置内容NSLog(@”%@”, label.text); //读取内容3.textColor //设置文字颜

IOS中标签视图和Block

标签视图控制器 - UITabBarController 自定义UITabBarItem 自定义导航栏和标签栏背景图片 三个视图控制器的综合使用 一. 标签视图控制器  UITabBarController UITabBarController有以下重要属性 viewControllers   显示的视图控制器 tabBar                  标签栏 delegate                协议 tabBar 是 UITabBar对象, 包含多个UITabBarItem,

ios 中内容label高度自适应

首先并且最重要的是计算文本高度,然后再设置label的高度, 计算文本高度: 假设文本: NSString*strtest =@" 新华网北京12月16日电据新华社"新华国际"客户端报道,"一日之计在于晨".克强总理15日的紧张日程从一顿早饭开始.天刚蒙蒙亮,哈萨克斯坦总理马西莫夫就来到克强总理下榻的酒店--北京大厦,邀请克强总理一起吃早餐.这是一顿简单的早餐,只有一张圆桌,两把椅子,一些简单的中西餐点.这也是一顿丰盛的早餐,两位总理在餐桌上就中哈产能合作

iOS中求出label中文字的行数和每一行的内容

今天遇到一个需求,需要计算label中文字的行数.想了好久也没想到好的解决方法,就在网上找了下.结果发现一篇文章是讲这个的.这部分代码不但能够求出一个label中文字行数,更厉害的是能够求出每一行的内容是什么: 代码如下. #import <CoreText/CoreText.h> - (NSArray *)getLinesArrayOfStringInLabel:(UILabel *)label{ NSString *text = [label text]; UIFont *font = [

OS X 和iOS 中的多线程技术(上)

OS X 和iOS 中的多线程技术(上) 本文梳理了OS X 和iOS 系统中提供的多线程技术.并且对这些技术的使用给出了一些实用的建议. 多线程的目的:通过并发执行提高 CPU 的使用效率,进而提供程序运行效率. 1.线程和进程 进程 什么是进程 进程是指在计算机系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行中其专用且受保护的内存空间内 比如同时打开 Xcode .Safari ,系统就会分别启动两个进程 通过活动监视器可以查看Mac系统中所开启的进程 线程 什么是线程 一

iOS开发中文件的上传和下载功能的基本实现-备用

感谢大神分享 这篇文章主要介绍了iOS开发中文件的上传和下载功能的基本实现,并且下载方面讲到了大文件的多线程断点下载,需要的朋友可以参考下 文件的上传 说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中.本文介绍如何不借助第三方框架实现iOS开发中得文件上传. 由于过程较为复杂,因此本文只贴出部分关键代码. 主控制器的关键代码: 复制代码代码如下: YYViewController.m#import "YYViewController.h" #define YYEnc

iOS选取相册中iCloud云上图片和视频的处理

关于iOS选取相册中iCloud云上图片和视频 推荐看:TZImagePickerController的源码,这个是一个非常靠谱的相册选择图片视频的库 .当然也可以自己写 如下遇到的问题 工作原因,需要处理接入一个视频模块,在视频选择的时候遇到了一个不太容易发现的bug,产生的原因是由于手机内存小,而用户又打开了相册同步iCloud, 加载中的图片 在这时,如果本地可用内存过小,会导致将本地相册中的图片或视频删除只留缩略图,如果App调用的时候想要选取这种图片就需要从iCloud云中进行下载,才