У меня есть 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% пути прохождения анимации перехода.Как вы можете видеть, устаревшие скроллеры остаются видимыми.Я хотел бы, чтобы они были скрыты, поэтому при переходе между изображениями это будет черный фон.
Спасибо