é usado para adicionar um preenchimento ao UIScrollView? Se não, você poderia me dar um exemplo prático. Meu problema não é como implementá-lo, mas quando implementá-lo.
ForeignerBR
28
Sim, ele preenche o conteúdo na parte interna da exibição de rolagem. É semelhante à paddingpropriedade CSS .
Marc W
Desculpe por pegar carona nisso, posso fazer a sua própria pergunta, mas com base nisso, o que realmente acontece se você definir cada valor contentInset como 0 diferente de contentHeight, por exemplo? Isso força a visualização de rolagem inteira à altura em que você a define?
jakev
@jakev Não, a propriedade .frame controla as dimensões da scrollview dentro de seu pai (consulte esta resposta: stackoverflow.com/questions/5361369/… ). Definir o contentInsets como 0 para todos os lados significa simplesmente que o conteúdo não será preenchido na visualização de rolagem. Portanto, quando você rola para o topo, o conteúdo fica bem no topo da visualização de rolagem. Se você rolar para a parte inferior, o conteúdo alcançará a parte inferior da visualização da rolagem.
21413 Jeremy Wiebe
é possível manter o contentInset sempre, mesmo quando a rolagem sempre mantém marin no topo (contenInset) do scrollView
Chlebta
86
Embora a resposta do jball seja uma excelente descrição das inserções de conteúdo, ela não responde à questão de quando usá-lo. Vou emprestar seus diagramas:
A linha superior do conteúdo ainda estará visível porque ainda está dentro do quadro da visualização de rolagem. Uma maneira de pensar no deslocamento superior é "quanto mover o conteúdo para baixo na exibição de rolagem quando estamos rolados até o topo"
Para ver um local em que isso é realmente usado, consulte o aplicativo Fotos incorporado no iphone. A barra de navegação e a barra de status são transparentes e o conteúdo da exibição de rolagem é visível embaixo. Isso ocorre porque o quadro da exibição de rolagem se estende até esse ponto. Mas, se não fosse o conteúdo inserido, você nunca conseguiria deixar a parte superior do conteúdo limpa nessa barra de navegação transparente ao percorrer todo o caminho até o topo.
O bom aqui é que você pode usar as inserções para criar o efeito "rolar sob a barra de status com desfoque".
TheEye 12/03
O exemplo sobre o aplicativo de fotos foi fácil de entender.
abhimuralidharan 14/09/17
8
As inserções de conteúdo resolvem o problema de ter conteúdo que fica abaixo de outras partes da interface do usuário e ainda permanece acessível usando barras de rolagem. Em outras palavras, o objetivo do Content Inset é tornar a área de interação menor que sua área real.
Considere o caso em que temos três áreas lógicas da tela:
TOP BUTTONS
TEXT
BOTTOM TAB BAR
e queremos que o TEXTO nunca apareça de forma transparente embaixo dos BOTÕES SUPERIORES, mas queremos que o Texto apareça embaixo da BARRA DE TABELA INFERIOR e, ainda assim, permita a rolagem para que possamos atualizar o texto de forma transparente sob a BARRA DE TABELA INFERIOR.
Em seguida, definiríamos a origem superior para ficar abaixo dos BOTÕES SUPERIORES e a altura para incluir a parte inferior da BARRA DE TABELA INFERIOR. Para obter acesso ao Texto abaixo do conteúdo da BARRA DE TABELA, definiríamos a inserção inferior como a altura da BARRA DE TABELA.
Sem a inserção, o scroller não permite que você role o conteúdo o suficiente para digitar nele. Com a inserção, é como se o conteúdo tivesse "CONTEÚDO EM BRANCO" extra do tamanho da inserção do conteúdo. O texto em branco foi "inserido" no "conteúdo" real - é assim que me lembro do conceito.
As inserções são a ÚNICA maneira de forçar seu scroller a ter uma "janela" no conteúdo onde você deseja. Ainda estou mexendo com esse código de exemplo, mas a idéia está aí: use as inserções para obter uma "janela" no seu UIScrollView.
padding
propriedade CSS .Embora a resposta do jball seja uma excelente descrição das inserções de conteúdo, ela não responde à questão de quando usá-lo. Vou emprestar seus diagramas:
É isso que você obtém quando faz isso, mas a utilidade disso só aparece quando você rola:
A linha superior do conteúdo ainda estará visível porque ainda está dentro do quadro da visualização de rolagem. Uma maneira de pensar no deslocamento superior é "quanto mover o conteúdo para baixo na exibição de rolagem quando estamos rolados até o topo"
Para ver um local em que isso é realmente usado, consulte o aplicativo Fotos incorporado no iphone. A barra de navegação e a barra de status são transparentes e o conteúdo da exibição de rolagem é visível embaixo. Isso ocorre porque o quadro da exibição de rolagem se estende até esse ponto. Mas, se não fosse o conteúdo inserido, você nunca conseguiria deixar a parte superior do conteúdo limpa nessa barra de navegação transparente ao percorrer todo o caminho até o topo.
fonte
As inserções de conteúdo resolvem o problema de ter conteúdo que fica abaixo de outras partes da interface do usuário e ainda permanece acessível usando barras de rolagem. Em outras palavras, o objetivo do Content Inset é tornar a área de interação menor que sua área real.
Considere o caso em que temos três áreas lógicas da tela:
e queremos que o TEXTO nunca apareça de forma transparente embaixo dos BOTÕES SUPERIORES, mas queremos que o Texto apareça embaixo da BARRA DE TABELA INFERIOR e, ainda assim, permita a rolagem para que possamos atualizar o texto de forma transparente sob a BARRA DE TABELA INFERIOR.
Em seguida, definiríamos a origem superior para ficar abaixo dos BOTÕES SUPERIORES e a altura para incluir a parte inferior da BARRA DE TABELA INFERIOR. Para obter acesso ao Texto abaixo do conteúdo da BARRA DE TABELA, definiríamos a inserção inferior como a altura da BARRA DE TABELA.
Sem a inserção, o scroller não permite que você role o conteúdo o suficiente para digitar nele. Com a inserção, é como se o conteúdo tivesse "CONTEÚDO EM BRANCO" extra do tamanho da inserção do conteúdo. O texto em branco foi "inserido" no "conteúdo" real - é assim que me lembro do conceito.
fonte
É usado para adicionar preenchimento
UIScrollView
Sem
contentInset
, uma visualização de tabela é assim:Em seguida, defina
contentInset
:O efeito é o seguinte:
Parece ser melhor, certo?
E eu escrevo um blog para estudar
contentInset
, críticas são bem vindas.fonte
Ótima pergunta.
Considere o seguinte exemplo (
scroller
é um UIScrollView):As inserções são a ÚNICA maneira de forçar seu scroller a ter uma "janela" no conteúdo onde você deseja. Ainda estou mexendo com esse código de exemplo, mas a idéia está aí: use as inserções para obter uma "janela" no seu
UIScrollView
.fonte