Como posso permitir que vários segmentos de um UISegmentedControl para ser selecionado?
-
06-07-2019 - |
Pergunta
Vamos dizer que meu UISegmentedControl tem 8 segmentos numerados. Eu gostaria que o usuário seja capaz de transformar em 2, 3, ou mais de uma vez. Alternando-los. Essencialmente como um bits num byte. Isso é possível? Eu acredito que é em regulares Mac OS X, mas eu não consigo encontrar uma maneira de fazê-lo no iPhone SDK.
Se eu tiver para simular isso colocando botões em um ponto de vista, existe alguma maneira de fazer o seguinte:
- Round os cantos da vista para que ele se parece com o "bar" UISegmentedControl estilo?
- Use o built-in fundos do estilo "bar" tem sobre os botões?
- Dar os botões de uma sombra como se todo o "bar" estilo tem? (Não o texto)
Solução
Isto não é possível usando UIKit. Eu recomendaria criando um controle personalizado, ou uma matriz de controles UISwitch
, representando cada uma das opções em sua UISegmentedControl.
Outras dicas
Este é o melhor controle personalizado Descobri que permite que vários segmentos a ser selecionado simultaneamente:
https://github.com/yonat/MultiSelectSegmentedControl
Esta é uma subclasse de UISegmentedControl, que é conveniente. Eu bifurcada-lo aqui:
https://github.com/stewartmacdonald/MultiSelectSegmentedControl
e acrescentou alguns exemplos de código para o ReadMe e acrescentou um método que permite que você obtenha um NSArray dos títulos de todos os segmentos selecionados.
Eu acho que a maneira mais simples é criar seu próprio segmentedcontrol com UIButton.
Marco
Não parece ser uma maneira de fazer isso no XCode agora. No Atributos Inspector, há uma seção com o segmento, Título, Imagem, Comportamento. As opções de comportamento são "Ativado" e "Selecionado". Você pode selecte "Selecionado" para vários segmentos.
Eu recomendo que você tente https://github.com/tayhalla/THSegmentedControl
é uma subclasse real de UISegmentedControl
por isso se encaixa muito bem com o construtor de interface e tudo.