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