Pergunta

Eu estou tentando acelerar minha gui que carrega muito lento lento quando eu estou carregando um grande projeto (o gui é uma representação de grupos e subgrupos e é composta de muitos pontos de vista). Durante este processo, eu estava olhando para o tempo determinados segmentos de código necessário para executar e eu descobri que uma chamada para addSubview está tomando entre 10 e 20 milissegundos na maioria das vezes. O subexibição eu estava olhando para um botão de divulgação. Eu estou querendo saber se este método é apenas inerentemente lenta ou é a sua algum outro fator no trabalho aqui? É o tempo que leva para adicionar o dependente da complexidade do subexibição subexibição ou é que não é um fator? Além disso, existe algum outro método que pode ser usado para adicionar um subexibição que pode ser mais rápido?

Foi útil?

Solução

Você poderia tentar -setSubviews: o que leva uma série de subviews. Isso pode ser mais rápido, em seguida, chamando -addSubview:. Múltiplas vezes se

Caso contrário, -addSubview: e -addSubview: posicionada: relativeTo:. São os únicos outros métodos para a inserção de subvisualizações

Estou curioso, porém, por que é 10 - 20 ms para desacelerar para um único subexibição? Quantas subviews que você está tentando adicionar?

É possível que exista um projeto alternativo usando NSCell de que pode ser mais rápido, mas sem saber mais detalhes sobre o que você está tentando realizar, é difícil saber.

Outras dicas

Reorganizando a hierarquia de vista não é algo que você costuma fazer com muita frequência. Em vez de adicionar e remover subviews, você poderia esconder e mostrá-los.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top