Parece que os menus de deslizar lateral estão se tornando um elemento de interface mais comum à medida que mais informações são amontoadas em cada aplicativo do iPhone. O Facebook o incluiu em sua versão mais recente e o novo aplicativo do Gmail parece incluí-lo também . Eu queria saber se alguém pensou sobre a maneira mais eficiente de desenvolver algo assim, pois está se tornando um elemento de interface mais comum. Embora tenha meus próprios pensamentos sobre como construir isso, estou curioso para ouvir o que as outras pessoas pensam.
objective-c
ios
cocoa-touch
Nick ONeill
fonte
fonte
Respostas:
Recentemente, deparei com isso, na verdade, não olhei o código ou testei o controle, mas parece que pode ser um ponto de partida muito decente.
jtrevealsidebar
Edit: O leitor também deve dar uma olhada nas outras respostas :)
fonte
Há uma ótima biblioteca para isso de Tom Adriaenssen: Inferis / ViewDeck
É muito fácil de usar e possui muitos seguidores.
EDITAR:
Para algo um pouco mais leve, confira: mutualmobile / MMDrawerController
Ele não possui todos os recursos do ViewDeck, mas é mais simples de modificar e estender.
fonte
Eu criei uma biblioteca para isso. É chamado MFSideMenu .
Entre outras coisas, inclui suporte para iphone + ipad, retrato + paisagem, menu no lado esquerdo ou direito, UITabBarController e gestos de panorâmica.
fonte
Confira o MMDrawerController:
MMDrawerController
Não conseguimos encontrar uma biblioteca de que gostávamos, então lançamos a nossa.
fonte
A ideia principal de que você deve definir o quadro ou o centro de self.navigationController.view . Há dois eventos que você precisa manipular. (1) barButtonItem pressione . (2) gesto de movimento panorâmico por deslizar.
Você pode enviar o controlador de exibição para o plano de fundo da seguinte maneira:
fonte
Ainda melhor é o JASidePanels . Facilmente implementado e funciona para iPhone e iPad.
Link do Github: JASidePanels
fonte
A implementação do Facebook coloca um UIPanGestureRecognizer na UINavigationBar. Permitindo assim pegar golpes onde é necessário.
Isso permite fazer coisas como, reconhecer a direção do toque em x / z diretamente, bem como a velocidade com que ocorreram.
Também esse tipo de mexer com UIViews (mais de uma na tela por vez, com tarefas evidentemente diferentes -> portanto, diferentes controladores) deve (estou tentado a dizer que deve) usar os novos recursos do ViewController-Containment do iOS. Toda implementação sem isso é simplesmente ruim, pois mexe com a hierarquia de visualizações de uma maneira não pretendida pela Apple.
Em uma nota lateral: Se você está realmente curioso para saber como isso pode ser feito o mais próximo possível do Facebook, confira o projeto que eu abro no Github PKRevealController .
fonte
Existem dezenas de bibliotecas diferentes que os desenvolvedores criaram para implementar a navegação no estilo Facebook / Path para aplicativos iOS. Posso listar todos eles, mas como você pediu o melhor, aqui estão minhas duas opções que eu uso para implementar o menu de navegação do furto lateral:
1) ECSlidingViewController É muito fácil de implementar e usar Storyboards também. Não tive problemas ao implementá-lo, nem recebi erros ou algo assim. O link que forneci tem praticamente toda a explicação para usá-lo.
2) SWRevealViewController Esta biblioteca é fácil de usar e você pode encontrar um tutorial AQUI , que mostra como implementá-lo com todas as explicações e imagens. Você pode apenas seguir o tutorial e me agradecer mais tarde.
fonte
Outra opção é usar o Scringo . Ele fornece um menu lateral, como nos aplicativos do youtube / facebook, e também todos os tipos de recursos integrados no menu que você pode adicionar (por exemplo, conversar, convidar amigos, etc.)
Adicionar o menu lateral é simplesmente chamando [ScringoAgent startSession ...] e toda a configuração pode ser feita no site.
fonte
Consulte aqui um bom ponto de partida: deslize a navegação como o facebook e o caminho
fonte
Essa questão é bastante popular, mas tudo se resume à importação e uso fáceis para mim ... Aqui está o que eu uso ... SWRevealController .
Estou surpreso que as pessoas tenham saudades ... É realmente ótimo !!! e fácil de usar. O desenvolvedor ainda inclui alguns projetos de exemplo que permitem ver como usá-lo em diferentes cenários.
fonte
Um excelente guia sobre como desenvolver sua própria navegação deslizante em Swift e Objective-C.
Objetivo-C
Rápido
fonte
Tanto o Gmail quanto o Facebook fazem uso pesado de visualizações da Web, por isso é difícil dizer o que é código nativo e o que é renderizado em HTML. No entanto, olhando para a interface, parece que eles colocaram um UITableView com uma largura mais estreita que a largura da tela (320pt) embaixo de um UIView que contém o conteúdo que eles querem exibir. A seleção de linhas diferentes da visualização de tabela provavelmente alterna uma subvisão da visualização de conteúdo.
Pelo menos, é assim que eu abordaria o problema. É difícil ditar o que deveria ser. Basta entrar e começar a experimentar!
fonte
Se você quiser, eu fiz esse repositório no github GSSlideMenu. Permite criar um menu no estilo do Facebook, MAS com um webView "de volta" (geralmente todos os repositórios que encontrei têm um tableView como o "back").
fonte
este é exatamente o clone da barra lateral do facebook: biblioteca GHSidebarNav
muito fácil de usar. instruções estão em
fonte
a visualização à direita pode estar dentro de uma subclasse de UIScrollView. Nesta subclasse, você pode substituir
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
para retornar YES apenas se o usuário tocou na subview. Dessa forma, você pode colocar seu UIScrollView transparente sobre qualquer outra visualização e passar por qualquer evento de toque que ocorra fora da subvisão; e você obtém material de rolagem de graça.Por exemplo:
ou:
fonte
Tente adicionar seu menu (que você desliza para acessar) abaixo da tela principal. Comece a se inscrever para tocar em eventos na exibição.
Implemente
touchesMoved:
e verifique se o primeirogesture
é vertical (role a tela principal, se necessário) ou horizontal (aqui você deseja mostrar o menu). Se for horizontal, comece a chamar outro método,- (void)scrollAwayMainView:(NSUInteger)pixels
sempre quetouchesMoved:
for chamado, calcule o número de pixels a partir do ponto de partida da visualização principal e passe esse número para o método. Na implementação desses métodos, execute o seguinte código:fonte
Confira minha solução para esta pergunta:
Como criar um menu de slides personalizado sem uma biblioteca de terceiros.
Uma classe única que você só precisa subclassificar e preencher com conteúdo.
Aqui está a turma. Para mais detalhes, consulte o link acima.
fonte