Mostrando postagens com marcador Cocoa Touch. Mostrar todas as postagens
Mostrando postagens com marcador Cocoa Touch. Mostrar todas as postagens

quarta-feira, 14 de março de 2012

Dica - Saber quando a UITableView está sendo movimentada (Scrolling)

Pessoal,

Este código é para vocês saberem quando a UITableView está sendo movimentada (Scrolling). Ou seja, o cidadão começou a rolar a tabela para baixo e você quer ter os mesmos Delegates que o UIScrollView.

Sabendo que o UITableView herda de UIScrollView... segue o código:

  1. //In ViewController.h
  2. #import <UIKit/UIKit.h>
  3. @interfaceViewController:UIViewController<UIScrollViewDelegate>
  4. {
  5.     IBOutletUITableView* myTable;
  6.     IBOutletUIScrollView* myScroll;
  7. }
  8. //In ViewController.m
  9. #pragma mark -View lifecycle
  10. -(void)viewDidLoad{
  11.     [super viewDidLoad];
  12.     // Do any additional setup after loading the view, typically from a nib.
  13.     myScroll = myTable;
  14.     myScroll.delegate = self;
  15. }
  16. #pragmaMarkUIScrollViewDelegate
  17. -(void)scrollViewDidScroll:(UIScrollView*)scrollView{
  18.     NSLog(@"%f",scrollView.contentOffset.y);
  19. }


sexta-feira, 24 de fevereiro de 2012

Função - Pegar a versão do projeto

  1. //Retorna uma NSString com a versão que está o projeto.
  2. [[[NSBundle mainBundle] infoDictionary] valueForKey:@"CFBundleShortVersionString"];




sábado, 10 de dezembro de 2011

Função - Formatar horário a partir de X segundos


//  ViewController.m
- (void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
    
    // Criando um processo para chamar o métodos onTimer a cada 1 segundo
    [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(onTimer) userInfo:nil repeats:YES];
}

- (void)onTimer
{
    static int segundos = 0;
    
    segundos++;
        
    // Imprimi no console o horário formatado
    NSLog(@"%@",[self horarioFormatadaComSegundos:segundos]);
}

// Função para formatar um horário a partir de inteiros.
- (NSString *)horarioFormatadaComSegundos:(int)segundos
{
    int hor = 0, min = 0, seg = 0;
    
    seg = segundos;
    
    while (seg >= 60) { min+=1; seg-=60; }
    
    while (min >= 60) { hor+=1; min-=60; }
    
    NSString * h, * m, * s;
    
    h = (hor > 9) ? [NSString stringWithFormat:@"%d",hor] : [NSString stringWithFormat:@"0%d",hor] ;
    m = (min > 9) ? [NSString stringWithFormat:@"%d",min] : [NSString stringWithFormat:@"0%d",min] ;
    s = (seg > 9) ? [NSString stringWithFormat:@"%d",seg] : [NSString stringWithFormat:@"0%d",seg] ;
    
    return [NSString stringWithFormat:@"%@:%@:%@",h,m,s];
}


Cantos Arredondados nas Imagens, Botões, e etc.


Adicionar o seguinte framework ao projeto:



// Declarar no header
#import <QuartzCore/QuartzCore.h>



// Código
- (void)viewDidLoad
{
    [super viewDidLoad];
    
    // Criando uma imagem
    CGRect rect         = CGRectMake((self.view.frame.size.width/2)-57, (self.view.frame.size.height/2)-90, 114, 175);
    UIImageView * image = [[UIImageView alloc] initWithFrame:rect];
    [image setImage:[UIImage imageNamed:@"bio.jpg"]];
    
    
    // Modificando os cantos
    image.layer.cornerRadius  = 20.0f;
    image.layer.masksToBounds = YES;
    
    
    // Adicionando a imagem na tela
    [self.view addSubview:image];
    
    [image release]; image = nil;
}

=================================================================================

Resultado:













Adicionando Sombra nas Imagens


Adicionar o seguinte framework ao projeto:



// Declarar no header
#import <QuartzCore/QuartzCore.h>



// Código
- (void)viewDidLoad
{
    [super viewDidLoad];
    
    // Criando uma imagem
    CGRect rect         = CGRectMake(10, 20, 280, 428);
    UIImageView * image = [[UIImageView alloc] initWithFrame:rect];
    [image setImage:[UIImage imageNamed:@"bio.jpg"]];
    
    // Adicionando a Sombra
    image.layer.shadowColor   = [UIColor grayColor].CGColor;
    image.layer.shadowOffset  = CGSizeMake(2, -2);
    image.layer.shadowOpacity = 1;
    image.layer.shadowRadius  = 1.0;
    
    // Adicionando a imagem na tela
    [self.view addSubview:image];
    
    [image release]; image = nil;
}

=================================================================================

Resultado:













terça-feira, 29 de novembro de 2011

Função - Gerando números aleatórios


srand(time(NULL));                 // Sequência que nunca se repete
    
for (int i = 0; i < 10; i++)      
{
    int r = rand()%100;            // Gerando número aleatório de 0 à 100.
        
    NSLog(@"%d",r);                // Imprimindo resposta
}





srand(100);                        // Sequência que sempre se repete
    
for (int i = 0; i < 10; i++)     
{
    int r = rand()%100;            // Gerando número aleatório de 0 à 100.
        
    NSLog(@"%d",r);                // Imprimindo resposta
}



Função - Alerta simples com Título e Mensagem


// ViewController.m

- (IBAction)btnTouched:(id)sender 
{
    [self AlertWithTitle:@"Mensagem" andAlert:@"Isto é um teste!"];
}

// Retorna uma mensagem simples apenas com título e mensagem
-(void)AlertWithTitle:(NSString *)title_ andAlert:(NSString *)alert_
{
    [[[[UIAlertView alloc] initWithTitle:title_ message:alert_ delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil] autorelease] show];
}





Função para abrir uma URL no Safari


// ViewController.m

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
    [super viewDidLoad];
    
    [self abrirNoSafari:@"http://www.google.com.br"];
    
}


// Função criada
- (void)abrirNoSafari:(NSString *)site
{
    NSURL * url = [NSURL URLWithString:site]; // Transformando a string para url
    
    if (![[UIApplication sharedApplication] openURL:url]) // Tenta abrir o site no safari
    {
        NSLog(@"Falhou ao tentar abrir o site: %@",site); // Mensagem de erro
    }
}


sábado, 26 de novembro de 2011

Salvando Valores Localmente - NSUserDefaults

Neste video eu mostro como salvar valores localmente no device do usuário. Salvar, por exemplo, um NSString ou NSInteger utilizando o NSUsertDefaults. Xcode 4.2








// ViewController.m


- (void)viewDidLoad

{

    [super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

    

    NSUserDefaults * userDefault = [NSUserDefaults standardUserDefaults];

    
    if ([userDefault stringForKey:@"palavra"] == NULL) {
        textField.text = @"";
    }else{
        textField.text = [userDefault stringForKey:@"palavra"];
    }
    
    [self btnOkTouched:nil];
}

- (IBAction)btnOkTouched:(id)sender 
{
    labelPalavra.text = [NSString stringWithFormat:@"Palavra: %@",textField.text];
    
    int qtde          = [textField.text length];

    labelQtde.text    = [NSString stringWithFormat:@"Quantidade: %d",qtde];
    
    [textField resignFirstResponder]; //Tirar o teclado
    
}

- (IBAction)btnSalvarTouched:(id)sender 
{
    NSUserDefaults * userDefault = [NSUserDefaults standardUserDefaults];
    
    [userDefault setObject:textField.text forKey:@"palavra"];
    [userDefault setInteger:[textField.text length] forKey:@"quantidade"];
    [userDefault synchronize]; //Forçar salvar os registros
}


quarta-feira, 23 de novembro de 2011

App universal a partir de uma "Empty Application"

Pessoal,

Este vídeo mostra o início de um projeto para app universal (iPhone, iPad e iPod Touch).
Como saber quando mostrar a tela desenhada para iPhone ou iPad.
Xcode 4.2 - Projeto baseado em "Empty Application".




Download: AppUniversal.zip

// AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
        _viewController = [[[UIViewController alloc] initWithNibName:@"TelaViewController_iPhone" bundle:nil] autorelease];
    }else{
        _viewController = [[[UIViewController alloc] initWithNibName:@"TelaViewController_iPad" bundle:nil] autorelease];
    }
    
    self.window.rootViewController = self.viewController;
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}