Как увеличить UILabel? - PullRequest
       25

Как увеличить UILabel?

0 голосов
/ 31 августа 2011

У меня есть UILabel со значением 0 и int со значением 300. Как мне использовать NSTimer, чтобы UILabel перешел от 0 до 300 за 2 секунды? Я хочу, чтобы это выглядело так, как будто оно добавляется постепенно.

Заранее спасибо!

Ответы [ 3 ]

1 голос
/ 31 августа 2011

На самом деле NSTimer точность составляет около 50-100 миллисекунд, поэтому она не может быть настолько гладкой, как вы хотите. Но вы можете запланировать таймер на 0,05 и измерить, сколько времени действительно прошло с самого начала. После использования

value = timePassedInSeconds*300/2; 
NSString* label = [NSString stringWithFormat:@"%d", value]; 

, если это не будет достаточно гладко, попробуйте использовать отображаемую ссылку вместо NSTimer.

0 голосов
/ 31 августа 2011

Я нашел другое решение:

Я знал, что хочу, чтобы "отсчет" длился 3 секунды ... что составляет 60 * 0,05 ... в основном таймер запускает метод 60 раздобраться до общей суммы.

addUpAb = [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(addUpTimer) userInfo:nil repeats:YES];

-(void)addUpTimer {
    int addNo = abTOT / 60;    
    abInt += addNo;

    abductionCount.text = [NSString stringWithFormat:@"%d", abInt];

    if(abInt >= abTOT) {
        [addUpAb invalidate];
        abCount.text = [NSString stringWithFormat:@"%d", abTOT];
        }
    }
0 голосов
/ 31 августа 2011

Что вы пытаетесь сделать? Вы пытаетесь показать какую-то анимацию очков / очков? Вы можете делать то, что вы хотите, если вы делаете математику и запускаете таймер с заданным интервалом, но я сомневаюсь, что вы получите то, что хотите. Возможно, вы захотите взглянуть на UIImageView и передать ему массив изображений для анимации или сделать анимацию самостоятельно с помощью рисования.

...