2013-04-24 2 views
2

progress getting startedРазноцветный Progressbar в прошивкой

progress completed

Мне нужно установить этот вид ProgressBar в приложении IOS. Может ли кто-нибудь предложить, как я могу получить такой вид, когда мой прогресс будет завершен (2-е изображение).

+0

это может быть дубликатом = [seethis] (http://stackoverflow.com/questions/16030464/how-to-fill-circleprogressbar-with-multiple-colors/16030524 # 16030524) –

+1

Я потягиваю чтобы вы использовали пользовательское представление в качестве индикатора выполнения или можете использовать пользовательское изображение. – HarshIT

ответ

0

Попробуйте мой пользовательский код: вы можете изменить изображение в соответствии с требованием.

.h файл

 //ProgressBar 
      NSTimer *splashtimer; 
      UIImage *ProgressBarBackgroundImage; 
      UIImageView *ProgressBarLeft; 
      UIImageView *ProgressBarRight; 
      UIImageView *ProgressBarMiddle; 
      UIImageView *LoadingBackground; 

      NSInteger totalSizeOfProgressBarAnimation; 
      NSInteger totalCountOfProgressBarAnimation; 
      NSInteger NoOfPercentage; 
      NSInteger startingvalue; 
      int progressValue; 


     //ProgressBar 
     @property (nonatomic,retain) UIImageView *ProgressBarLeft; 
     @property (nonatomic,retain) UIImageView *ProgressBarRight; 
     @property (nonatomic,retain) UIImageView *ProgressBarMiddle; 
     @property (nonatomic,retain) UIImageView *LoadingBackground; 

     - (void) ProgressBarSizeCheck:(NSInteger)starting:(NSInteger)ending; 

.m файл

 @synthesize ProgressBarLeft,ProgressBarRight,ProgressBarMiddle,LoadingBackground; 
     - (void)viewDidLoad { 
      [super viewDidLoad] 

      splashtimer = [NSTimer scheduledTimerWithTimeInterval: 0.75 target: self selector: @selector(startMoveProgress) userInfo: nil repeats: NO]; 

      ProgressBarLeft = [[UIImageView alloc] init]; 
      ProgressBarMiddle = [[UIImageView alloc] init]; 
      ProgressBarRight = [[UIImageView alloc] init]; 
      LoadingBackground = [[UIImageView alloc] init]; 
      ProgressBarBackgroundImage = [UIImage imageNamed: @"loaderbg.png"]; 
      [self.view addSubview: LoadingBackground]; 
     } 

Прагма знак -

Прагма марка Progress Bar Метод

 -(void)ProgressBarSizeCheck:(NSInteger)starting:(NSInteger)ending { 
      startingvalue = starting; 
      endingValue = ending; 
      NoOfPercentage = ending - starting; 

      if (startingvalue==0) { 
       //ProgressBarLeft Image 
       ProgressBarLeft.frame = CGRectMake(23,410,10,20); 
       UIImage *ProgressBarImage = [UIImage imageNamed: @"loaderleftpart.png"]; 
       ProgressBarLeft.image = ProgressBarImage; 
       [self.view addSubview: ProgressBarLeft]; 
       //LeftImageOver 

       //ProgressBarMiddleImage 
       ProgressBarMiddle.frame = CGRectMake(33,410,0,20); 
       UIImage *ProgressBarImageMiddle = [UIImage imageNamed: @"loadercenterpart.png"]; 
       ProgressBarMiddle.image = ProgressBarImageMiddle; 
       [self.view addSubview: ProgressBarMiddle]; 
       //MiddleImageOver 

       //ProgressBarRightImage 
       ProgressBarRight.frame = CGRectMake(33,410,10,20); 
       UIImage *ProgressBarImageRight = [UIImage imageNamed: @"loaderrightpart.png"]; 
       ProgressBarRight.image = ProgressBarImageRight; 
       [self.view addSubview: ProgressBarRight]; 
       //RightImageOver 

       totalSizeOfProgressBarAnimation = 276 * NoOfPercentage/100; 
       totalSizeOfProgressBarAnimation=totalSizeOfProgressBarAnimation-20; 
       int Duration=NoOfPercentage/10; 
       [self moveDown:Duration:totalSizeOfProgressBarAnimation]; 

      } 
      else { 
       totalSizeOfProgressBarAnimation = 276 * startingvalue/100; 
       totalSizeOfProgressBarAnimation=totalSizeOfProgressBarAnimation-20; 

       //ProgressBarLeftImage 
       ProgressBarLeft.frame = CGRectMake(23,410,10,20); 
       UIImage *ProgressBarImage = [UIImage imageNamed: @"loaderleftpart.png"]; 
       ProgressBarLeft.image = ProgressBarImage; 
       [self.view addSubview: ProgressBarLeft]; 
       //LeftImageOver 

       //ProgressbarMiddleImage 
       ProgressBarMiddle.frame = CGRectMake(33,410,totalSizeOfProgressBarAnimation,20); 
       UIImage *ProgressBarImageMiddle = [UIImage imageNamed: @"loadercenterpart.png"]; 
       ProgressBarMiddle.image = ProgressBarImageMiddle; 
       [self.view addSubview: ProgressBarMiddle]; 
       //MiddleImageOver 

       //ProgressBarRightImage 
       ProgressBarRight.frame = CGRectMake(33+totalSizeOfProgressBarAnimation,410,10,20); 
       UIImage *ProgressBarImageRight = [UIImage imageNamed: @"loaderrightpart.png"]; 
       ProgressBarRight.image = ProgressBarImageRight; 
       [self.view addSubview: ProgressBarRight]; 
       //RightImageOver 

       totalSizeOfProgressBarAnimation = 276 * NoOfPercentage/100; 
       int Duration=NoOfPercentage/10; 
       [self moveDown:Duration:totalSizeOfProgressBarAnimation]; 
      } 

     } 

     -(void)moveDown:(NSInteger)animationDuration:(NSInteger)size { 
      CGRect startFrame = [ProgressBarMiddle frame]; 
      [UIView beginAnimations:@"move10" context:NULL]; 
      [UIView setAnimationDuration:animationDuration]; 
      [ProgressBarMiddle setFrame:CGRectMake(startFrame.origin.x, 410, startFrame.size.width+size, startFrame.size.height)]; 
      [ProgressBarRight setFrame:CGRectMake(33+(startFrame.size.width+size),410,10,20)]; 
      [UIView setAnimationDelegate:self]; 
      [UIView setAnimationCurve: UIViewAnimationCurveEaseOut]; 
      [UIView commitAnimations]; 

      splashtimer = [NSTimer scheduledTimerWithTimeInterval: animationDuration target: self selector: @selector(pushTabControl) userInfo: nil repeats: NO]; 
     } 
     -(void)pushTabControl { 
      [self.navigationController pushViewController: tabObj animated:YES]; 
     } 

     -(void) startMoveProgress { 

      LoadingBackground.frame = CGRectMake(22,410,276,22); 
      UIImage *ProgressBarBackgroundImage = [UIImage imageNamed: @"loaderbg.png"]; 
      [LoadingBackground setUserInteractionEnabled: YES]; 
      LoadingBackground.image = ProgressBarBackgroundImage; 
      [self ProgressBarSizeCheck:0:100]; 

     } 

// Проверяем изображений

1) loaderbg.png

loaderbg

2) loadercenterpart

centerpart

3) loaderrightpart rightpart

4) loderleftpart

enter image description here

Смежные вопросы