Categorias
- Apple (8)
- Apps (7)
- Código (2)
- Corrida (2)
- Descansar os olhos (6)
- Design (3)
- iOS Dev (23)
- iPad (2)
- iPhone (6)
- Pessoal (5)
- Tech (2)
- Tecnologia (1)
- Tudo ao molho (4)
- Web (1)
- Wordpress (1)
Últimos Tweets...
- If you're curious about iPad app sales figures, check this post out: http://is.gd/dPvO0 (via @agiletortoise) (via @taptaptap) 1 day ago
- I'm at McDonalds Palmela in Palmela http://gowal.la/r/XUGm 2 days ago
- @NunoMBRod já tinha feito um post sobre o preview no meu blog, mas não sabia que o Xcode 4 tinha suporte para HTML5. in reply to NunoMBRod 2 days ago
- Finalmente o almoço — at Pedra & Fondue http://gowal.la/r/XNUU 2 days ago
- e a fome que eu já tenho.... e o que ainda falta para o almoço :( 2 days ago
- More updates...
UILabel Align on Top
Ontem durante mais uma noitada de volta do Cocoa, descobri uma coisa que me parece algo absurda.
Precisei de utilizar uma UILabel para conter uma string, mas à partida nunca sei o tamanho da string… e quero que a string esteja sempre alinhada no topo da UILabel, tenha ela uma ou várias linhas. No entanto – e de forma algo bizarra – isto é impossível de fazer com um simples atributo do objecto.
Então houve necessidade de recorrer um pouco ao engenho e ficou algo deste tipo:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"FollowingCell";
UILabel *myLabel;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
cell.contentView.backgroundColor = [UIColor whiteColor];
myLabel = [[[UILabel alloc] initWithFrame:CGRectMake(54.0f, 20.0f, 220.0f, 90.0f)] autorelease];
myLabel.font = [UIFont systemFontOfSize:13.0];
myLabel.tag = MY_TAG;
myLabel.textColor = [UIColor blackColor];
myLabel.lineBreakMode = UILineBreakModeWordWrap;
myLabel.numberOfLines = 10;
[cell.contentView addSubview:myLabel];
} else {
myLabel = (UILabel *)[cell.contentView viewWithTag:MY_TAG];
}
myLabel.text = myDataSource.myText;
CGRect myLabelRect = [myLabel textRectForBounds:myLabel.bounds limitedToNumberOfLines:999];
CGRect newHeight = myLabel.frame;
newHeight.size.height = myLabelRect.size.height;
myLabel.frame = newHeight;
return cell;
}Talvez tenham necessidade de implementar também este próximo método para que a altura da célula se adapte à quantidade de texto existente:
- (CGFloat) tableView: (UITableView *) tableView heightForRowAtIndexPath: (NSIndexPath *) indexPath
{
MyDataSource *myDataSource = [fetchedResultsController objectAtIndexPath:indexPath];
NSString *text = myDataSource.myText;
CGFloat height = [text sizeWithFont:[UIFont systemFontOfSize:14] constrainedToSize:CGSizeMake(220,200) lineBreakMode:UILineBreakModeWordWrap].height;
return height+25;
}E desta forma tenho uma UILabel em cada célula da tabela que independentemente da quantidade de texto que contém, adapta-se em altura de forma a “acomodá-lo” e colocar sempre o texto alinhado no topo.
Esta solução não é inteiramente da minha autoria. Encontrei já nem sei onde um “pedaço” de código para alinhar em baixo para uma dada quantidade de linhas, e aproveitei para modificá-lo e adaptar às minhas necessidades.
Espero que seja útil para mais alguém…
Guia da iTunes Connect actualizado

A Apple lançou mais uma versão do seu Guia de utilização da iTunes Connect, com várias alterações… e em especial:
- Como utilizar o novo Version Release Control e “agendar” o lançamento da aplicação na App Store
- Utilizar o novo Application Loader para submissão de App’s
- Utilização do Game Center
iPhone-Simulator Cropper

Tirar screenshots da nossa App para publicidade, marketing, iTunes Connect, etc… é muitas vezes uma tarefa chata e morosa. No entanto um programador decidiu que esta tarefa poderia ficar um pouco mais fácil e intuitivo de fazer.
iPhone-Simulator Cropper é um script que permite tirar de forma rápida os screenshots directamente no Simulador. E ainda tem a vantagem de se poder optar por remover a StatusBar ou não.
O download é gratuito e suporta tanto a versão iPhone como a versão iPad… em simulador.


App para Android com 2ªs intenções
Milhões de pessoas fizeram download de uma App de Wallpapers para o Android que em segundo plano a App recolhia dados pessoais do equipamento e enviava para um site na China…. OUCH!!!
A app desenvolvida por Jackeey Wallpaper pode/podia ser encontrada no Android Market, e após a sua instalação no telemóvel recolhia informações tais como: histórico de navegação, SMS’s, número do cartão SIM, etc…
Começa a ser um problema a acontecer com alguma frequência nas Online Store para mobile. Não é caso único no Android Market, e até mesmo na App Store já houve alguns casos de uso fraudulento, e até mesmo de app’s que utilizavam recursos privados, – para fornecer de forma escondida – ao utilizar funções que de outra forma não estariam disponíveis.
Não sei muito bem qual poderá ser uma solução para este problema, mas serve de alerta…
Visto em: MobileBeat