Como você obtém os limites disponíveis dentro de um uitabbarcontroller
-
03-07-2019 - |
Pergunta
Ao usar um UITABBARController, como você obtém o tamanho da barra de guias na parte inferior? Da mesma forma, como você sabe quanta espaço você tem dentro da visão de guias para o seu conteúdo? Eu vejo muitos exemplos de pessoas dimensionando as visões da Tab Child para [[UISCREEN Mainscreen] ApplicationFrame], que não pode estar correto porque a barra de guias ocupa algum espaço na parte inferior da tela.
Além disso, é possível modificar o tamanho da barra de guias?
Obrigado Ryan
Solução
O motivo pelo qual você pode usar o ApplicationFrame é que o UITABBARController redimensiona as visualizações de seus subcontroladores; portanto, desde que sua visualização suportem redimensionar corretamente, tudo funcionará.
Você pode obter o tamanho da barra de guias acessando a propriedade Tabbar do controlador de barra de guia e olhando para o quadro. O tamanho total da barra de guias mais a área para a vista pode ser encontrada olhando para o quadro da propriedade do controlador de barra de barra, para que um pouco de subtração lhe dará o número que você está procurando:
CGFloat myViewHeight = tabBarController.view .size.height
- tabBarController.tabBar.size.height;
Outras dicas
Pergunta antiga, mas de qualquer maneira:
Se você não carregar sua visualização de uma ponta, defina os sinalizadores de redimensionamento automático no seu Func LoadView; algo assim:
self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight |
UIViewAutoresizingFlexibleWidth;
Se você o fizer, pode usar o ApplicationFrame [[UISCELEen Mainscreen] para especificar o quadro da sua exibição; Será redimensionado automaticamente se uma barra de guia estiver presente.
Se você tem uma ponta para a sua visualização, o MASC automático automaticamente é definido automaticamente pelo interface Builder.
Markus
Se você pode descobrir como redimensionar um UITABBAR, poderá redimensionar o UITABBAR de um UitabBarController. Você pode acessar o objeto tomando
[[UITabBarController subviews] objectAtIndex:0]
Mas é recomendado na documentação que você não acessa diretamente o objeto.