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

//行的高度。

-(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:15] constrainedToSize:CGSizeMake(cell.myLabel.frame.size.width, 1000) lineBreakMode:UILineBreakModeWordWrap];

cell.myLabel.lineBreakMode = UILineBreakModeWordWrap;

cell.myLabel.numberOfLines = 0;

[cell.myLabel setFont:[UIFont fontWithName:@"Arial" size:15]];

cell.myLabel.frame = CGRectMake(0, 0, labelSize.width, labelSize.height);

return labelSize.height+30;

}

//显示每行的内容。

- (NewNotificationCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

static NSString *CellIdentifier = @"Cell";

NewNotificationCell*cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (!cell) {

cell=[[[NewNotificationCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]autorelease];

cell = [[[NSBundle mainBundle]loadNibNamed:@"NewNotificationCell" owner:self options:nil]objectAtIndex:0];

}

//自动换行。

cell.myLabel.text = [self.dataArray objectAtIndex:indexPath.row];

labelSize = [cell.myLabel.text sizeWithFont:[UIFont fontWithName:@"Arial" size:15] constrainedToSize:CGSizeMake(cell.myLabel.frame.size.width, 1000) lineBreakMode:UILineBreakModeWordWrap];

cell.myLabel.lineBreakMode = UILineBreakModeWordWrap;

cell.myLabel.numberOfLines = 0;

[cell.myLabel setFont:[UIFont fontWithName:@"Arial" size:15]];

cell.myLabel.frame = CGRectMake(0, 0, 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, 40)];

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+5, labelSize.height-19, 30, 20);

}

[cell.timeButton setTitle:@"今天" forState:UIControlStateNormal];

cell.timeButton.frame = CGRectMake(260, labelSize.height+8, 50, 20);

return cell;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容