Является ли метод addSubview NSView медленным по своей сути?(Какао OSX)

StackOverflow https://stackoverflow.com/questions/2435414

Вопрос

Я пытаюсь ускорить свой графический интерфейс, который загружается очень медленно, когда я загружаю большой проект (графический интерфейс представляет собой представление групп и подгрупп и состоит из множества представлений).В ходе этого процесса я смотрел, сколько времени требуется для выполнения определенных сегментов кода, и обнаружил, что вызов addsubview большую часть времени занимает от 10 до 20 миллисекунд.Подпредставление, на которое я смотрел, — это кнопка раскрытия.Мне интересно, является ли этот метод просто медленным по своей сути или здесь действует какой-то другой фактор?Зависит ли время, необходимое для добавления подпредставления, от сложности подпредставления или это не имеет значения?Кроме того, есть ли какой-нибудь другой метод, который можно использовать для добавления подпредставления, который может быть быстрее?

Это было полезно?

Решение

Вы можете попробовать -setSubviews:который принимает массив подпредставлений.Это может быть быстрее, чем вызов -addSubview:несколько раз сам.

В противном случае -addSubview:и -addSubview:position:relativeTo:являются единственными другими методами вставки подпредставлений.

Однако мне любопытно, почему для одного подпросмотра требуется 10–20 мс?Сколько подпредставлений вы пытаетесь добавить?

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

Другие советы

Перестановка иерархии представлений — это не то, что вы обычно делаете очень часто.Вместо добавления и удаления подпредставлений вы можете скрывать и показывать их.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top