### Typical use Add the progress view to your view hierarchy like you would with any other view. Note that it works best when the progress view is added at the bottom of a view, as showing (resp. hiding) grows up (resp. shrinks down). **Step 1: Add the progress view to a view** Add the progress view to a view and set the desired progress and hidden state. #### Swift ```swift let progressView = MDCProgressView() progressView.progress = 0 let progressViewHeight = CGFloat(2) progressView.frame = CGRect(x: 0, y: view.bounds.height - progressViewHeight, width: view.bounds.width, height: progressViewHeight) view.addSubview(progressView) ``` #### Objective-C ```objc @property(nonatomic) MDCProgressView *progressView; ... // Progress view configuration. self.progressView = [[MDCProgressView alloc] initWithFrame:myframe]; self.progressView.progress = 0; // You can also set a greater progress for actions already started. [self.view addSubview:self.progressView]; ``` **Step 2: Change the progress and hidden state** Both the progress and the hidden state can be animated, with a completion block. #### Swift ```swift func startAndShowProgressView() { progressView.progress = 0 progressView.setHidden(false, animated: true) } func completeAndHideProgressView() { progressView.setProgress(1, animated: true) { (finished) in self.progressView.setHidden(true, animated: true) } } ``` #### Objective-C ```objc - (void)startAndShowProgressView { self.progressView.progress = 0; [self.progressView setHidden:NO animated:YES completion:nil]; } - (void)completeAndHideProgressView { __weak __typeof__(self) weakSelf = self; [self.progressView setProgress:1 animated:YES completion:^(BOOL finished){ [weakSelf.progressView setHidden:YES animated:YES completion:nil]; }]; } ```