animateWithDuration вызывает проблемы с UITextView - PullRequest
1 голос
/ 17 сентября 2011

Ранее сегодня я пытался заставить некоторый текст в своем приложении автоматически прокрутить текст песни, которая воспроизводится в данный момент, и я получил ответ, чтобы использовать метод animateWithDuration для правильной работы прокрутки.Это работало фантастически, пока я не заметил, что когда я использую следующий код, что-то покрывает 80% textView в том же цвете, что и фон textView.Когда я провожу пальцем по покрытой области (как в симуляторе, так и на моих тестовых устройствах), поле (или что бы то ни было) исчезает, и весь текст отображается как обычно.Я знаю, что это вызов метода animateWithDuration, потому что я закомментировал его, и текст не покрывается при сборке и запуске с ним, не включенным в проект.Также я вошел в Интерфейсный Разработчик и изменил цвет textView на белый (он был черным вместе с фоном всего остального в представлении), чтобы увидеть, имеет ли то, что покрывало, черный фон.Когда я изменил его на белый, текст все еще был покрыт белым цветом.Опять же, это только первый раз, когда я показываю textView и добавляю в него текст песни.После того, как я проведу по закрытой области, любая песня, которую я играю, не помешает.Просто в первый раз, пока он не ударил.Вот код, который я использую ...

// 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

РЕДАКТИРОВАТЬ: Ну, я решил проблему черного ящика, покрывающего текст, хотя я не понимаю этого.В то время как я форматировал текстовый файл, чтобы он лучше сочетался со словами, моя каретка возвращается, а также разрывы строк приводят к тому, что текст покрывается.Я удалил содержимое текстового файла и заново вставил оригинал, в результате чего текст не был скрыт.Итак, теперь я думаю, что моя задача - выяснить, как отформатировать текст в текстовом файле, не скрывая текст.Есть предложения?

1 Ответ

0 голосов
/ 18 сентября 2011

Так что, очевидно, текстовый документ хранился где-то в приложении, так как я удалил все текстовые файлы в папке ресурсов, и текст для текста все еще появился. Я предполагаю, что он использовал размер текстовых файлов, которые были сохранены, так как каждый раз, когда я уменьшал текстовый файл (удаляя строки из двойного пробела), именно там возникла проблема. Я отформатировал его так, как хотел, и добавил куча каретки возвращается в конце моего текстового документа, и теперь она работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...