Гладкость NSProgressIndicator: приращение по сравнению с setDoubleValue - PullRequest
1 голос
/ 27 ноября 2011

Я подозреваю, что NSProgressIndicator работает более плавно, когда его значение обновляется с помощью incrementBy по сравнению с setDoubleValue.

Кто-нибудь знает, есть ли реальная разница между двумя методами обновления его значения?

Ответы [ 2 ]

0 голосов
/ 17 мая 2019

Я подозреваю, что NSProgressIndicator работает более плавно, когда его значение обновляется с помощью incrementBy по сравнению с setDoubleValue.

Не влияет на macOS 10.14.Когда я устанавливаю maxValue на 1000, а затем каждые 100 мс вызываю таймер, метод выглядит одинаково, независимо от того, вызывает ли метод всегда [self.progress incrementBy:1] или [self.progress setDoubleValue:self.step++], причем step является переменной экземпляра типа NSUInteger, котораяизначально ноль.

0 голосов
/ 28 ноября 2011

У меня нет никаких знаний о внутренностях, но я был бы очень удивлен, если бы incrementBy не был эквивалентом

[self setDoubleValue:[self doubleValue] + delta];

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

...