3

这是我的 UILable 中的文本...

“这个列表实际上并不是基于直接的受欢迎程度计算;简单地计算阅读次数最多的经文会产生前 100 个列表,该列表几乎完全由约翰福音 3:16 和哥林多前书 13、创世记 1、罗马书 8 和诗篇 23。我们的列表反而考虑了 BibleGateway.com 用户一次看三节或更少节经文的例子。

我如何获得文本的最后一行……即,“一次只有三节或更少的诗句。” 从我的可用。

非常感谢任何解决方案。

4

1 回答 1

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" 并从此索引中提取值到最后一个索引。

于 2013-01-18T07:17:48.700 回答