Я новичок в программировании OS X Cocoa, но решил дать ему новый язык Swift.
У меня есть NSTableView
с 1500 строками (будет больше) и 7 столбцами. Существует один столбец флажка, а остальные - текстовые поля, один с форматом даты и один форматирование валюты. Я сначала установил это как основанное на ячейке. Прокрутка была гладкой маслянистой (я даже сделал тест, добавляя 1 миллион строк, все еще гладкий). Это было под мавериками.
Затем я обновился до Yosemite, производительность прокрутки значительно ухудшилась. Включение флажка "Уровень анимации ядра" в представлении таблицы улучшило это, но все еще хуже, чем у mavericks.
Во время моего чтения, пытаясь улучшить производительность прокрутки в Yosemite, я столкнулся с NSTableViews на основе View. Из документации он сказал, что представления таблиц сотовой таблицы обычно не используются и поддерживаются только для устаревших проектов.
Поэтому я преобразовал свою таблицу в представление таблицы на основе View. Пример простой концепции, ничего сложного. Прокрутка производительности абсолютно ужасно. Если вы прокручиваете очень медленно, это достаточно гладко, но как только вы начнете быстрее прокручивать его, как будто он недостаточно буферизирован, он начинает заикаться и дрожать. Кроме того, когда заполняется NSTableView
, фокусировка и дефокусировка окна занимает второй или более (я снова попробовал это у mavericks, и этого не было, прокрутка была немного лучше, но все же нигде ближе к сотовой базе).
Являются ли представления на основе NSTableviews
всегда плохими для прокрутки производительности? Если да, почему яблоко рекомендует использовать их на основе ячейки NSTableviews
.
Также некоторые приложения, такие как сафари и Reeder2, имеют масляную гладкую прокрутку даже в Йосемити. Как они достигают этого?
Я что-то упустил или это производительность OS X, просто попадая в ад с каждой новой вещью? То есть
Маверикs > Йосемити
На основе ячеек > View-Based
Старый > Новый
Любая помощь очень ценится. Спасибо!