2016-08-13 2 views
1

То, что я пыталсяКак добавить символы в UILabel, анимированные в iOS с Objective-C?

Я создал рекурсивную функцию, которая закругляется над NSMutableArray и присно временем будет проходить через эту анимацию блог. Этот метод вызывается этим кодом, потому что я думал, что проблема, почему анимация на UILabel не работает, заключается в том, что она не запускается в основном потоке.

[self performSelectorOnMainThread:@selector(writeText:) 
         withObject:_arrayAllLabels 
        waitUntilDone:YES]; 

анимация имеет completion блок, который также проверяет, завершена ли анимация, а затем перемещается на вызвать ту же функцию снова. Кроме того, я добавил дополнительный блог анимации, но ничто не позволяет ему добавлять символы в ярлык.

[UIView animateWithDuration:1.5f 
          delay:1.0f 
         options:UIViewAnimationOptionCurveEaseOut 
        animations:^{ 

         //adding next character to text attribute of UILabel      
        } completion:^(BOOL finished) { 

         [UIView animateWithDuration:1.0f 
             animations:^{ 

          if (finished){ 
          [self performSelectorOnMainThread:@selector(writeText:) 
                withObject:_arrayAllLabels 
               waitUntilDone:YES]; 

          } 
         } completion:nil]; 

        }]; 

Что это выглядит

enter image description here

То, что я нашел после того, как мой поиск не был прав

Я смотрел вокруг на некоторое время теперь и пытался найти вопрос, связанный с моей проблемой, но все, что я нашел, указано только в одном направлении, меняя текст UILabel на другой текст, ни один персонаж

  • stackoverflow.com/questions/26402062/changing-the-text-of-a-uilabel-makes-it-reappear-when-using-uiviewkeyframeanimat
  • stackoverflow.com/ вопросы/26703501/fade-between-text-in-a-uilabel-with-delay

Может ли кто-нибудь помочь?

+0

это может быть полезно? https://github.com/tomknig/TOMSMorphingLabel – EricD

ответ

3

Метод setText UILabel не является анимированным. animateWithDuration:completion: только анимировать изменение кадров, границы, центр, преобразование ... Смотрите Apple, документы по анимации здесь для списка анимируемого собственности: https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/AnimatingViews/AnimatingViews.html

Для вашей проблемы, вы должны забыть, используя animateWithDuration:completion: и создать анимацию самостоятельно, используя NSTimer, например, для выполнения addLetter: метод каждые x секунд ...

+0

Я столкнулся с такой проблемой уже раньше, но это было давно. Теперь я не был уверен, что я просто что-то забыл (например, mainThread). Удивление, если нет другого способа решить это! Но я посмотрю на NSTimer! :) –

+0

xD извините, я просто понял, что вы говорите о «NSTimer», совершенно правильно! Это то, что происходит, если вы слишком долго перестаете использовать язык :) –

Смежные вопросы