3

これが私のUILableにあるテキストです...

「このリストは、実際には単純な人気のカウントに基づいているわけではありません。単に最も読まれた聖句を集計すると、ヨハネ 3:16 と、コリント第一 13 章、創世記 1 章、ローマ 8 章、および詩篇 23 篇では、代わりに、BibleGateway.com ユーザーが一度に 3 つ以下の節を見た事例を考慮しています。」

テキストの最後の行を取得するにはどうすればよいですか。つまり、「一度に 3 つ以下の節で」。私のUilableから。

どんな解決策も大歓迎です。

4

1 に答える 1

2

1 つだけアイデアをあげることができます。これがあなたを助けますように。

 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 に答える