Objota O mundo orientado a objetos

WBProgressView – Barra de progresso personalizada para iPhone / iPad

Posted on janeiro 31, 2011

Contribuindo ai para o conhecimento de vocês leitores do objota, quero apresentar para vocês a WBProgressView. Esse componente foi criado por mim para facilitar na criação de barras personalizadas de load na aplicação. Nesse POST eu vou mostrar como usar esse componente e como personalizar caso necessário.

Os arquivos que compõem esse componente são:
WBProgressView.h
WBProgressView.m
ativo-bar.png
inativo-bar.png

Para usar o componente é preciso basicamente importar a classe, informar a imagem do estado ativo e a imagem do estado inativo.
Então vamos ao exemplo:

Primeiramente crie um projeto com o nome de ProgressBar. Logo depois declare a variável dentro do .h( ProgressBarViewController.h) do nosso viewController principal:


#import <UIKit/UIKit.h>
#import "WBProgressView.h"

@interface ProgressBarViewController : UIViewController {
	WBProgressView *progress;
}

@end

Agora no arquivo .m (ProgressBarViewController.m) deixe exatamente como embaixo. Nós vamos fazer com que a barra seja atualizada a cada 1 segundo, adicionando mais 1 a cada passagem.

//Não esqueça de colocar as imagens do componente dentro do seu projeto.

#import "ProgressBarViewController.h"

@implementation ProgressBarViewController

- (void)viewDidLoad {

        [super viewDidLoad];

        progress = [[WBProgressView alloc] initWithFrame:CGRectMake(10, 10, 400, 14)];
	progress.tileActive = [UIImage imageNamed:@"ativo-bar.png"];
	progress.tileInactive = [UIImage imageNamed:@"inativo-bar.png"];
	progress.max = 20.0;
	progress.min = 5.0;
	progress.value = 5.0;

	[self.view addSubview:progress];

	[progress release];

	[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(addValue) userInfo:nil repeats:NO];

}

- (void)addValue {

	if(progress.value != 20.0){

		progress.value += 0.5;
		[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(addValue) userInfo:nil repeats:NO];

	}

}

- (void)dealloc {
    [super dealloc];
    [progress release];
}

@end

Na classe NSTimer falamos para executar um determinado método a cada 1 segundo. Na propriedade max da classe WBProgressView serve para setar qual o valor máximo que o progress irá receber e em min o valor mínimo.

Caso queira personalizar a imagem do load, é só você trocar essas imagens de ativo e inativo por uma imagem que você quer :)...

Agora é só executar o programa e ver o resultado.

Pronto!!! É apenas isso. Simples não?
Qualquer dúvida ou sugestão postem por favor.

Até a próxima.

arquivos do post

Posted by Pedro

Comentários (3) Trackbacks (0)
  1. Pedro, muito legal suas matérias…venho acompanhando a algum tempo. Estou estudando o desenvolvimento para iphone. Mas ainda tenho um pouco de dificuldades porque venho do Delphi e por enquanto o conceito de programar parece um pouco diferente. Tem alguma dica de material para pegar mais a base mesma da liguagem? Tipo classes e etc…

  2. Pedro, tenho as mesma dificuldade de Bruno Dias , venho do Delphi se poder ajudar te agradesço.

    • Então Paulo…. agora, nas novas versões do iOS veio junto algo interesante no GCC que pode te ajudar bastante, que é o modo ARC, que nele vc programa +- no modelo Delphi e Java sem se preocupar muito com ponteiros e coisas do tipo….

      Foi melhorada a edição de Telas no Xcode, entre outros recursos que deixou a programação para iOS uma moleza!!!
      Então aconselho a dar uma boa olhada no site developer.apple.com para ter uma visão de como está agora, está bem simples.

      Atualmente estou meio enrolado com uns projetos aqui, mas logo que possível vou postar algumas coisas para o pessoal que está em busca de desenvolver para iOS.

      Obrigado pelo comentário.

      Pedro Lucas.


Leave a comment

Sem trackbacks