//行的高度。
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
NewNotificationCell *cell = (NewNotificationCell *)[self tableView:tableView cellForRowAtIndexPath:indexPath];
cell.myLabel.text = [self.dataArray objectAtIndex:indexPath.row];
labelSize = [cell.myLabel.text sizeWithFont:[UIFont fontWithName:@"Arial" size:] constrainedToSize:CGSizeMake(cell.myLabel.frame.size.width, ) lineBreakMode:UILineBreakModeWordWrap];
cell.myLabel.lineBreakMode = UILineBreakModeWordWrap;
cell.myLabel.numberOfLines = ;
[cell.myLabel setFont:[UIFont fontWithName:@"Arial" size:]];
cell.myLabel.frame = CGRectMake(, , labelSize.width, labelSize.height); return labelSize.height+;
}
     //自动换行。
cell.myLabel.text = [self.dataArray objectAtIndex:indexPath.row];
labelSize = [cell.myLabel.text sizeWithFont:[UIFont fontWithName:@"Arial" size:] constrainedToSize:CGSizeMake(cell.myLabel.frame.size.width, ) lineBreakMode:UILineBreakModeWordWrap];
cell.myLabel.lineBreakMode = UILineBreakModeWordWrap;
cell.myLabel.numberOfLines = ;
[cell.myLabel setFont:[UIFont fontWithName:@"Arial" size:]];
cell.myLabel.frame = CGRectMake(, , labelSize.width, labelSize.height); //获取文字长度和高度。
CGSize fontSize =[cell.myLabel.text sizeWithFont:cell.myLabel.font
forWidth:cell.myLabel.frame.size.width
lineBreakMode:UILineBreakModeWordWrap];
NSLog(@"文字长度=%f",fontSize.width); //获取UILabel上最后一个字符串的位置。
CGPoint lastPoint;
CGSize sz = [cell.myLabel.text sizeWithFont:cell.myLabel.font constrainedToSize:CGSizeMake(MAXFLOAT, )]; CGSize linesSz = [cell.myLabel.text sizeWithFont:cell.myLabel.font constrainedToSize:CGSizeMake(cell.myLabel.frame.size.width, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];
if(sz.width <= linesSz.width) //判断是否折行
{
lastPoint = CGPointMake(cell.myLabel.frame.origin.x + sz.width, cell.myLabel.frame.origin.y);
}
else
{
lastPoint = CGPointMake(cell.myLabel.frame.origin.x + (int)sz.width % (int)linesSz.width,linesSz.height - sz.height);
}
NSLog(@"====%f",lastPoint.x); [cell.myButton setTitle:@"查看" forState:UIControlStateNormal];
[cell.myButton setBackgroundImage:[UIImage imageNamed:@"button.png"] forState:UIControlStateNormal];
if ([cell.myButton.titleLabel.text isEqualToString:@"查看"]) {
cell.myButton.frame = CGRectMake(lastPoint.x+, labelSize.height-, , );
}
[cell.timeButton setTitle:@"今天" forState:UIControlStateNormal];
cell.timeButton.frame = CGRectMake(, labelSize.height+, , );
return cell;
}

获取UILabel上最后一个字符串的位置。获取文字长度和高度,自动换行的更多相关文章

  1. php 判断字符串在另一个字符串中位置

    $email='user@example.com';        //定义字符串$result=strstr($email,'@');         //返回子字符串echo $result; / ...

  2. 20. orcle中统计一个字符串中某个字符的长度

    例子1:统计一个字符串中“,”的个数: select lengthb(regexp_replace('[a,b,c,d,e,f]','[^,]',null))  as res from dual; 例 ...

  3. 获取Sprite上某一个点的透明度

    转载[ http://www.cnblogs.com/Androider123/p/3795050.html] 本篇文章主要讲一下怎么做一个不规则的按钮,比如如下图的八卦,点击绿色和点击红色部分,需要 ...

  4. 【原】cocos2d-x开发笔记:获取Sprite上某一个点的透明度,制作不规则按钮

    本篇文章主要讲一下怎么做一个不规则的按钮,比如如下图的八卦,点击绿色和点击红色部分,需要执行不同的事件

  5. 【vim】跳转到上/下一个修改的位置

    当你编辑一个很大的文件时,经常要做的事是在某处进行修改,然后跳到另外一处.如果你想跳回之前修改的地方,使用命令: Ctrl+o 来回到之前修改的地方 类似的: Ctrl+i 会回退上面的跳动.

  6. 使用jquery获取url上的参数(笔记)

    使用jquery获取url上的参数(笔记) 一.做作业时经常要获取url上的参数 1.当url上有多个参数时 从互联网找到了一个方法 (function ($) { $.getUrlParam = f ...

  7. 【LeetCode】1433. 检查一个字符串是否可以打破另一个字符串 Max Difference You Can Get From Changing an Integer

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 排序 日期 题目地址:https://leetcode ...

  8. HashTable集合和练习题_计算一个字符串中每一个字符出现的次数

    HashTable集合 /** * java.util.Hashtable<K,V>集合 implement Map<K,V>接口 * Hashtable:底层也是一个哈希表, ...

  9. js获取table checkbox选中行的值.mdjs获取table checkbox选中行的

    <!DOCTYPE html> <html> <head> <script src="https://cdn.staticfile.org/jque ...

随机推荐

  1. Silverlight Visifire控件应用去水印

    版本几之前可以用属性直接去掉水印: chart.Watermark = false; 现在我用的会报错,已过时,在网上查了写资料,解决办法如下: 一.很多人都是利用摭罩的办法,定位到水印显示的地方,建 ...

  2. iOS 关于时间戳的一些细节

    最近遇到一个bug,在iPhone上获取当前的时间戳,没有问题,而用iPad来测试的时候,出现了时间戳不对.当时的代码 (需要精确到毫秒,所以*1000) NSTimeInterval t = [[N ...

  3. windows下配置svn的https访问

    svn是一个功能强大的代码版本管理系统,可以将服务端安装在linux.unix以及windows下.svn通常采用http方式进行代码提交与下载.由于密码采用明文传输,因此存在泄密的风险.若采用htt ...

  4. Jquery对选取到的元素显示指定的长度,对于的字符串用“...”显示

    $(function() { $(".video_name").each(function() { var s = $(this).text(); $()); }); }); fu ...

  5. MFC 多线程

    MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程.二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息   队列和消息循环. 工作者线程没有消息机制,通 ...

  6. java生成UUID通用唯一识别码 (Universally Unique Identifier)

    转自:http://blog.csdn.net/carefree31441/article/details/3998553 UUID含义是通用唯一识别码 (Universally Unique Ide ...

  7. 实现Web虚拟现实的最轻松方案—A-Frame框架

    问题 随着vr的热度那么web虚拟现实是否可行 1. 实现Web虚拟现实的最轻松方案 A-Frame A-Frame是一款开源的可通过定制HTML元素构建WebVR方案的框架.有了这个框架,Web程序 ...

  8. Python核心编程(第七章)--映像和集合类型

    字典:它是一个容器类型,能存储任意个数的Python对象,也包括其他容器类型,Python的字典是作为可变的哈希表实现的 映像类型中的数据是无序排列的   可以用工厂方法dict()来创建字典,也可以 ...

  9. 元组:戴上了枷锁的列表 - 零基础入门学习Python013

    元组:戴上了枷锁的列表 让编程改变世界 Change the world by program 元组:戴上了枷锁的列表 由于和列表是近亲关系,所以元组和列表在实际使用上是非常相似的. 我们这节课主要通 ...

  10. Linux - How To Set Up an NFS Mount on CentOS 6

    About NFS (Network File System) Mounts NFS mounts work to share a directory between several servers. ...