从UILabel / UITextView中查找最后一行文本

时间:2013-01-18 06:43:05

标签: iphone ios objective-c ios6 uitextview

以下是我的UILable中的文字......

“这个列表实际上并不是基于一个直接的人气统计;简单地计算最多阅读的经文导致前100名列表几乎完全由约翰福音3:16和哥林多前书13,创世纪1,罗马人的经文组成8,和诗篇23.我们的列表改为考虑使用BibleGateway.com用户同时查看三节或更少节目的情况。“

我如何获得文本的最后一行......,“一次三个或更少的经文。”从我的uilable。

非常感谢任何解决方案。

1 个答案:

答案 0 :(得分:2)

我可以提出一个想法。愿这对你有所帮助。

 UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(50,50,200,350)];
    myLabel.numberOfLines = 0;
    myLabel.lineBreakMode = UILineBreakModeWordWrap;
    myLabel.text = @"This is some text in a UILabel which is long enough to wrap around the lines in said UILabel. This is a test, this is only a test.";
    [self.view addSubview:myLabel];
    CGSize labelSize = [myLabel.text sizeWithFont:myLabel.font 
                                constrainedToSize:myLabel.frame.size 
                                    lineBreakMode:UILineBreakModeWordWrap];
    CGFloat labelHeight = labelSize.height;
    NSLog(@"labelHeight = %f", labelHeight);
    [myLabel release];

上面你可以获得标签的高度,然后你可以通过将高度除以一些适当的数字来获得行数,这取决于字体大小。

1)从NSAttributedString获取UILabel之后。 2)从NSAttributedString您可以获得“\ n”字符。 3)得到最后一个“\ n”并从该索引中提取值到最后一个索引。