2011-09-17 2 views
1

今日、私はアプリで、現在再生している曲の歌詞を自動スクロールするためにテキストを取得しようとしていましたが、animateWithDurationメソッドを使用してスクロールを正しく動作させる答えが得られました。次のコードを使用すると、textViewの背景と同じ色でtextViewの80%をカバーするものがあることに気付くまで、これは驚くべきことでした。覆われた領域(シミュレータとテストデバイスの両方)でスワイプすると、ボックス(またはそれが何であれ)が消え、すべてのテキストが正常に表示されます。 animateWithDurationのメソッドコールだと分かっています。私はそれをコメントアウトしています。プロジェクトには含まれていないテキストをビルドして実行するとテキストが覆われません。また、Interface Builderに入り、テキストビューの色を白に変更しました(それは黒の背景に沿って他のものも表示されていました)。私が白に変えたとき、テキストはまだ白い箱で覆われていました。もう一度、私はtextViewの表示を解除して、曲の歌詞を入力します。私が覆われたエリアをスワイプした後、私が妨害をしている曲は表示されません。それがスワイプされるまでのちょうど最初の時間。ここで私が使用しているコードがある...animateWithDurationでUITextViewの問題が発生しました

// set the textView to start at the top of the document 
[textView setContentOffset:CGPointZero]; 
CGPoint scrollPoint = textView.contentOffset; 
// set the scroll point to the length of the text view, so it knows how far down to go 
scrollPoint.y= [textView.text length]; 

次は、テキストが

`// animate down to that point at the rate of the length of the song minus 20 seconds (so the lyrics can catch up to the song) 
    [UIView animateWithDuration:(self.myMusicPlayer.duration - 20) 
          delay:0 
         options:UIViewAnimationOptionAllowUserInteraction 
        animations:^(void) {self.textView.contentOffset = scrollPoint;} 
        completion:nil];` 

をカバーし、ここで前と囲み面積をスワイプした後の写真です取得する原因です。

enter image description here

誰もがテキストまたは私はそれを取り除くために何ができるかをカバーしているものの任意のアイデアがありますか?それとも別の方法で、animateWithDuration以外の別のメソッドを使って歌詞を自動スクロールできますか?

ここでは、textViewに歌詞を入力するコードを示します。

- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath { // determine which row was clicked 
NSUInteger row = [indexPath row]; 
// get the song name from the array at the position clicked 
NSString *rowString = [songNames objectAtIndex:row]; 
// load the lyrics for the song played into the textView 

// load the text file for the song selected 
NSString *lyrics = [[NSBundle mainBundle] pathForResource:rowString ofType:@"txt"]; 
NSString *fileContents = [NSString stringWithContentsOfFile:lyrics];  

// set the textView to load the lyric sheet for the song selected 
self.textView.text = fileContents; // more after this, but this is all that I'm doing with the textView 

EDIT:私はそれを理解していないのにまあ、私は、テキストをカバーするブラックボックスの問題を解決してきました。私が歌詞をより良く流すためにテキストファイルをフォーマットしている間に、私のキャリッジリターンだけでなく、行を壊してテキストを覆うようにします。テキストファイルの内容を削除して元のテキストを再貼り付けたので、テキストが隠されていませんでした。だから私は、テキストを隠蔽せずにテキストファイル内のテキストをどのようにフォーマットするかを理解することが私の考えであると思います。助言がありますか?

+0

これで問題が解決するかどうかはわかりませんが、クリアするようにテキストビューの色を設定してみてください。 'self.textView.backgroundColor = [UIColor clearColor];' –

+0

素晴らしい提案ですが、残念ながらうまくいきませんでした。 –

答えて

0

リソースフォルダ内のすべてのテキストファイルを削除し、歌詞のテキストがまだ表示されているように、テキストドキュメントがアプリ内のどこかに格納されていたようです。私はそれがいつも私がテキストファイルを小さくした(ダブルスペースから行を削除することによって)いつでも保存されたテキストファイルのサイズを使用していたと推測しています、問題がどこに来たのですか?私のテキスト文書の終わりにキャリッジリターンの束、それは今うまく動作します。

関連する問題