2011-07-22 13 views
0

これを題材にするのは面倒です。私はこれが基本的な質問だと思うが、私は答えを見つけることができない。 コード自体が私はしたいとUILabelは何も表示しないかを示して、私はそれに追加する最初の行が正常に動作しますが、私は、配列書き出すためにしようとしていないとき:UILabelは私が書いたものを手に入れていません

-(IBAction)getSongHistory:(id)sender { 
[historyLabel setText:@"test write\n test write another line"]; 
NSArray *pastMusicArray = [pastSongs getHistory]; 
for(int t=2; t<[pastMusicArray count]; t++) { 
    NSString *tempRow = [pastMusicArray objectAtIndex:t]; 
    //NSLog(@"%@", tempRow); 
    [historyLabel setText:tempRow]; 
    [historyLabel setText:@"\n"]; 
} 

}

NSLogは正しいものを出します。 ここには何がありますか、私は見ていませんか?

答えて

1

問題は、毎回フルテキストを設定し、最後にsetText:が見えない文字列であることを示しているようです。テキストを設定する代わりに追加してみてください。次のようになります。

historyLabel.text = [NSString stringWithFormat:@"%@%@", historyLabel.text,@"TextToAppend"]; 

これは、ラベルの現在のテキスト値に@ "TextToAppend"を追加します。

更新:通知私はセッターではなくテキストプロパティを使用しています。

historyLabel.text = @"Some Text"; 

は問題ないはずの文字列で\nを使用して

[historyLabel setText:@"Some Text"]; 
+0

問題は、setTextがUILabelのすべてを置き換えてしまうため、最後のsetTextが@ "\ n"だったことです。つまり、それは空白のUILabelを意味していました。 –

+0

まさに私が言ったこと。 – fsaint

0

に相当し、その中の任意の数の行を許可0、にラベルのnumberOfLinesプロパティを設定してみてください。

+0

私はInterface BuilderでnumberOfLinesを0に設定しましたが、コードに設定するまではそれを行いませんでした。 –

0

これは私自身の問題の解決方法です。それが他の人を助けることができることを願っています。

NSArray *pastMusicArray = [pastSongs getHistory]; 
musicHistory = [[NSMutableString alloc] init]; 
historyLabel.numberOfLines = 0; 
for(int t=2; t<[pastMusicArray count]; t++) { 
    [musicHistory appendString:[[pastMusicArray objectAtIndex:t] capitalizedString]]; 
    [musicHistory appendString:@"\n"]; 
} 
historyLabel.text = musicHistory; 
関連する問題