2015-03-04 2 views
0

У меня есть представление UITextField и Progress. Я хочу, чтобы этот пользователь вводил значение в текстовое поле, и в это время суммы просмотр прогресса должен быть заполнен до 100% с плавной анимацией, а% завершения процесса должно отображаться в меткеUITextField и индикатор выполнения

Я написал для этого код , он показывает гладкую анимацию заполненного представления прогресса, но не показывает% завершения процесса.

Вот мой код:

#import "ViewController.h" 

@interface ViewController() 
@property (weak, nonatomic) IBOutlet UILabel *lblProgres; 

@property (weak, nonatomic) IBOutlet UITextField  *txtValue; 
@property (weak, nonatomic) IBOutlet UIProgressView *progressBar; 
- (IBAction)btnRestPressed:(id)sender; 

- (IBAction)btnAction:(id)sender; 
@end 

@implementation ViewController 

//----------------------------------------------------------------------- 

#pragma mark - Memory Managment Method 

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

//----------------------------------------------------------------------- 

#pragma mark - Action Method 

- (IBAction)btnRestPressed:(id)sender { 

    [self.progressBar setProgress:0.0]; 
} 

- (IBAction)btnAction:(id)sender { 

     float val1 = 1/[self.txtValue.text floatValue]; 

// [self.progressBar setProgress:0]; 
    NSTimer *timer = [NSTimer timerWithTimeInterval:val1 target:self selector:@selector(startedProgress:)userInfo:nil repeats:YES]; 
    [timer fire]; 
    if(self.progressBar.progress != 1.0) 
     [[NSRunLoop mainRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode]; 



    } 

//----------------------------------------------------------------------- 

#pragma mark - Custom Method 

- (void) startedProgress:(NSTimer *)timer{ 

    float val1 = 1/[self.txtValue.text floatValue]; 


      [UIView animateWithDuration:1/val1 animations:^{ 
       float i=0;; 
           if(self.progressBar.progress >= 0.0) { 

           //  for(i = 1; i <= 100*10; i++) { 
             [self.progressBar setProgress:[self.progressBar progress] + 1 /val1 animated:YES] ; 


             NSLog(@"%f",self.progressBar.progress); 
           // } 
            if(self.progressBar.progress == 1.0) { 

             [timer invalidate]; 

            } 

       } 

      } completion:^(BOOL finished) { 

      }]; 
      } 

//----------------------------------------------------------------------- 

#pragma mark - Initalize Method 

+ (ViewController *)viewController { 
    ViewController *view = [[ViewController alloc] initWithNibName:@"View" bundle:nil]; 
    return view; 
} 

//----------------------------------------------------------------------- 

#pragma mark - Lifecycle Method 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

} 

@end 

ответ

0

Добавить

self.lblProgres.text = [NSString stringWithFormat:@"%f %",self.progressBar.progress*100]; 

После

[self.progressBar setProgress:[self.progressBar progress] + 1 /val1 animated:YES] ; 
+0

Пожалуйста, добавьте простой-английски объяснение того, как это решает проблему. – Jubobs

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