Скрыть скроллеры NSScrollView во время анимации CATransition - PullRequest
0 голосов
/ 27 октября 2018

У меня есть NSScrollView, который показывает изображение в виде документа.Я анимирую между изображениями, добавляя CATransition (push) анимацию к слою вида прокрутки.Таким образом, каждое изображение может отображаться с отдельным уровнем увеличения.

Мне нужно скрыть скроллеры вида прокрутки (устаревший стиль) во время анимации перехода.Проблема, с которой я сталкиваюсь, заключается в том, что скроллеры всегда фиксируются анимацией перехода.Я отключаю скроллеры перед созданием анимации перехода или добавлением ее в слой, но анимация все еще сохраняется.Я управляю процессом анимации с помощью жеста смахивания, используя -[NSResponder scrollWheel:] и -[NSEvent trackSwipeEventWithOptions:dampenAmountThresholdMin:max:usingHandler:], поэтому мне нужно скрыть скроллеры, а затем сразу создать и добавить анимацию к слою.

Я использую:

_scrollView.hasVerticalScroller = NO;
_scrollView.hasHorizontalScroller = NO;

Я также пытался установить альфа-значение скроллера и скрытое состояние.Из того, что я могу сказать, представление прокрутки не перерисовывается до того, как оно было захвачено в растровом изображении для использования в анимации.

Я также пытался вызвать каждый из следующих методов, чтобы принудительно перерисовать представление прокрутки передэто захвачено анимацией.Я вызвал эти методы после отключения скроллеров, но до создания анимации перехода и добавления ее в слой:

  • [_scrollView reflectScrolledClipView:_scrollView.contentView]
  • [_scrollView tile]
  • [_scrollView setNeedsDisplay:YES]
  • [_scrollView display]

Это скриншот примерно на 40% пути прохождения анимации перехода.Как вы можете видеть, устаревшие скроллеры остаются видимыми.Я хотел бы, чтобы они были скрыты, поэтому при переходе между изображениями это будет черный фон.

Спасибо

visible scrollers

...