На самом деле NSTimer
точность составляет около 50-100 миллисекунд, поэтому она не может быть настолько гладкой, как вы хотите. Но вы можете запланировать таймер на 0,05 и измерить, сколько времени действительно прошло с самого начала. После использования
value = timePassedInSeconds*300/2;
NSString* label = [NSString stringWithFormat:@"%d", value];
, если это не будет достаточно гладко, попробуйте использовать отображаемую ссылку вместо NSTimer
.