Esse post vai em homenagem a minha turma do Curso de iOS à distância que ministrei no CESAR.edu. Foram deles as dúvidas abaixo que resolvi compartilhar com vocês.
Dica 1 - Adicionando UITableView ao UIAlertView
Podemos adicionar qualquer UIView dentro de um UIAlertView. Basta usar o método addSubView e posicioná-la da maneira que deseja. O que achei "feio" aqui é que para determinar o tamanho do alert setamos o texto dele com "\n". Poderíamos utilizar o método initWithFrame, mas achei o código ainda mais complexo (embora mais preciso em termos de tamanho).
UITableView *table = [[UITableView alloc] initWithFrame:CGRectMake(10, 50, 265, 100)]; table.dataSource = self; table.delegate = self; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Escolha uma opção" message:@"\n\n\n\n\n" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alert addSubview:table]; alert.autoresizesSubviews = YES; [alert show];
Tem uma opção interessante aqui também.
Dica 2 - Desabilitando um segmento do UISegmentedControl
Essa foi simples de achar, mas na aula passou desapercebido.
[_meuSegmentedControl setEnabled:NO forSegmentAtIndex:0];
Dica 3 - Definir o badge da aplicação
O badge nada mais é do que o número que aparece em cima do ícone da aplicação, por exemplo quanto temos chamadas não atendidas e/ou mensagens recebidas.
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:12];
Dica 4 - Adicionar View ao teclado
Ao invés de criar a view no código, você pode adicionar a mesma no XIB da tela e setar a propriedade inputAccessoryView. Para exemplificar, adicionei uma Toolbar ao XIB e crie um IBOutlet para ela.
@interface NGViewController : UIViewController @property (weak, nonatomic) IBOutlet UITextField *txtSobrenome; @property (weak, nonatomic) IBOutlet UIToolbar *minhaBarra; @endDepois é só colocar isso no viewDidLoad
[_txtSobrenome setInputAccessoryView:_minhaBarra];
Dica 5 - Ocultar teclado virtual
Sempre xingava o iOS por ter que ocultar o teclado via código. Mas achei a melhor maneira para ocultar o teclado. É só usar o método touchesBegan:withEvent da classe UIRespoder (super classe de UIView e UIViewController) e chamar o método endEditing da UIView.
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [self.view endEditing:YES]; }Independente da quantidade de UITextFields, o teclado vai sempre desaparecer.
Dicas 6 - Obtendo a orientação
Uma das melhores maneiras de obter a orientação do dispositivo é a abaixo:
// Verifica se é portrait ou portrait upsidedown if (UIDeviceOrientationIsPortrait( [[UIApplication sharedApplication] statusBarOrientation])){ }
Essa abordagem resolve alguns problemas que já tive. Por exemplo, quando o telefone está sobre a mesa, o método [[UIDevice currentDevice]orientation] retorna a orientação UIDeviceOrientationFaceUp (com o display para cima), enquanto que o método acima retorna a orientação da barra de status do aparelho e não do aparelho em si.
Qualquer dúvida (ou sugestão), deixem seus comentários,
4br4ç05
nglauber
Um comentário:
Muito legal essas dicas Professor!
Postar um comentário