Pergunta

Estou tentando desenhar uma forma semi-transparente sobre uma imagem.

tenho uma UIView o que tem o conteúdo da camada definido para a imagem, com um CAShapeLayer Sub-camada cujo caminho está definido para a forma. Existem alguns deles UIViews dentro de um pai UIView, que é o zoom filho de um UIScrollView.

Tudo está bem no iPhone, mas quando eu zoom no iPad, o UIViews ficar bastante grande e o CAShapeLayers desaparecer. As imagens exibem bem. Eu imaginei que o problema era um problema de tamanho, então divida o CAShapeLayers Em dois, de modo que havia um lado esquerdo e direito. Agora, os dois são mostrados, a menos que o usuário seja ampliado muito longe, por exemplo, enquanto "não enrolam" além do meu zoom máximo, pouco antes de se recuperar.

Dividindo meu CAShapeLayers Além disso, é factível, mas um pouco complicado. Então, eu tenho algumas perguntas:

  1. Existe uma restrição de tamanho máximo para CAShapeLayers? Por que não se aplica ao conteúdo da imagem da camada?
  2. Por que são os CAShapeLayers re-desenhar durante uma pitada de zoom dentro de um UIScrollView? Não deveria toda a visão de zoom (o UIScrollView's criança imediata) ser rasterizado durante a polegada? Como posso fazer isso?
Foi útil?

Solução

Acontece que a área máxima no meu computador (um MacBook de 2006) é 1024*1024.

Uma forma de tela cheia no iPad é de 1004 pixels, oferecendo uma largura máxima de cerca de 1044 pixels, por exemplo, se você deseja uma grande forma em uma exibição de rolagem horizontal.

Quando o zoom de salto de pitada, a altura real da forma aumenta, empurrando a largura máxima para cerca de 250 pixels. Isso é mais estreito do que eu gostaria, mas factível.

Isso pode ser diferente em um iPad físico, mas esses são os limites no simulador na minha caixa de dev.

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