NSTableview View на основе производительности прокрутки

Я довольно новичок вOS X Какао программирования, но решили попробовать его на новом языке Swift.

у меня естьNSTableView с 1500 строк (будет больше) и 7 столбцов. Существует один столбец флажка, а остальные - текстовые поля, одно с форматом даты, а другое - с форматированием валюты. Сначала я настроил это как ячейку. Прокрутка была плавной (я даже сделал тест, добавив 1 миллион строк, все еще плавный). Это было под Маверикс.

Затем я повысил доYosemite, производительность прокрутки значительно ухудшена. Включение флажка Базовый слой анимации в табличном представлении улучшило это, но было все еще хуже, чем в mavericks.

Во время моего чтения, пытаясь улучшить производительность прокрутки в Yosemite, я наткнулся на «View-Based» NSTableViews. В документации сказано, что табличные представления на основе ячеек, как правило, не должны использоваться и поддерживаются только для устаревших проектов.

Поэтому я преобразовал свою таблицу в табличное представление на основе представления. Пример простой концепции, ничего сложного. Производительность прокрутки абсолютно ужасна. Если вы прокручиваете очень медленно, он становится достаточно плавным, но как только вы начинаете прокручивать быстрее, он как бы недостаточно буферизуется и начинает заикаться и дергаться. Также когдаNSTableview Заполняется, фокусировка и расфокусировка окна занимает секунду или больше (я попробовал это снова в mavericks, и этого не было, прокрутка также была немного лучше, но все еще далеко от ячейки).

На основе просмотраNSTableviews всегда плохо для прокрутки производительности? Если это так, почему Apple рекомендует использовать их на основе клетокNSTableviews.

Кроме того, некоторые приложения, такие как safari и Reeder2, имеют плавную плавную прокрутку даже в Yosemite. Как они этого добиваются?

Я что-то упускаю или производительность OS X просто пойдет в ад с каждой новой вещью? т.е.

Маверикс> Йосемити

На основе ячеек> На основе представления

Старый> Новый

Буду признателен за любую оказанную помощь. Спасибо!

Ответы на вопрос(5)

Ваш ответ на вопрос