96 lines
3.5 KiB
Objective-C
96 lines
3.5 KiB
Objective-C
//
|
|
// MFLoadingViewController.m
|
|
// myverizon
|
|
//
|
|
// Created by Scott Pfeil on 11/20/14.
|
|
// Copyright (c) 2014 Verizon Wireless. All rights reserved.
|
|
//
|
|
|
|
#import "MFLoadingViewController.h"
|
|
#import "MFLoadingSpinner.h"
|
|
#import "NSLayoutConstraint+MFConvenience.h"
|
|
#import "UIColor+MFConvenience.h"
|
|
#import "MFStyler.h"
|
|
#import "MVMCoreUICommonViewsUtility.h"
|
|
#import <MVMCoreUI/MVMCoreUI-Swift.h>
|
|
|
|
@interface MFLoadingViewController ()
|
|
|
|
@property (nullable, weak, nonatomic) MFLoadingSpinner *activityIndicator;
|
|
@property (nullable, weak, nonatomic) UIView *transparentBackgroundView;
|
|
@property (nullable, weak, nonatomic) Label *indicatorText;
|
|
|
|
@end
|
|
|
|
@implementation MFLoadingViewController
|
|
|
|
- (void)loadView {
|
|
UIView *view = [[UIView alloc] initWithFrame:CGRectZero];
|
|
view.backgroundColor = [UIColor clearColor];
|
|
self.view = view;
|
|
|
|
UIStackView *loadingStack = [[UIStackView alloc] initWithFrame:CGRectZero];
|
|
loadingStack.axis = UILayoutConstraintAxisVertical;
|
|
loadingStack.alignment = UIStackViewAlignmentCenter;
|
|
loadingStack.spacing = 20;
|
|
|
|
// Sets up the loading view.
|
|
MFLoadingSpinner *activityIndicatorView = [[MFLoadingSpinner alloc] initWithFrame:CGRectMake(0, 0, 36, 36)];
|
|
activityIndicatorView.backgroundColor = [UIColor clearColor];
|
|
activityIndicatorView.translatesAutoresizingMaskIntoConstraints = NO;
|
|
self.activityIndicator = activityIndicatorView;
|
|
self.activityIndicator.accessibilityIdentifier = @"Loader";
|
|
[activityIndicatorView pinWidthAndHeight];
|
|
|
|
Label *infoLabel = [Label commonLabelH3:YES];
|
|
infoLabel.textAlignment = NSTextAlignmentCenter;
|
|
infoLabel.translatesAutoresizingMaskIntoConstraints = NO;
|
|
self.indicatorText = infoLabel;
|
|
|
|
[loadingStack addArrangedSubview:infoLabel];
|
|
[loadingStack addArrangedSubview:activityIndicatorView];
|
|
|
|
loadingStack.translatesAutoresizingMaskIntoConstraints = NO;
|
|
[view addSubview:loadingStack];
|
|
// Sets the constraints for the activityIndicatorView
|
|
|
|
[NSLayoutConstraint constraintWithItem:infoLabel attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationGreaterThanOrEqual toItem:nil attribute:NSLayoutAttributeHeight multiplier:1.0 constant:1.0];
|
|
[NSLayoutConstraint constraintPinSubview:loadingStack pinCenterX:YES pinCenterY:YES];
|
|
[NSLayoutConstraint constraintPinSubview:loadingStack pinTop:NO topConstant:0 pinBottom:NO bottomConstant:0 pinLeft:YES leftConstant:0 pinRight:YES rightConstant:0];
|
|
|
|
// Sets up the transparent background view.
|
|
UIView *transparentBackground = [MVMCoreUICommonViewsUtility commonView];
|
|
transparentBackground.backgroundColor = [UIColor mfBackgroundGray];
|
|
transparentBackground.alpha = 0.9;
|
|
[view insertSubview:transparentBackground belowSubview:loadingStack];
|
|
self.transparentBackgroundView = transparentBackground;
|
|
|
|
// Sets the constraints of the transparent background view to be the same as the activity indicator view.
|
|
[NSLayoutConstraint constraintPinSubviewToSuperview:transparentBackground];
|
|
}
|
|
|
|
- (void)viewDidLoad {
|
|
[super viewDidLoad];
|
|
// Do any additional setup after loading the view.
|
|
}
|
|
|
|
#pragma mark - LoadingView Functions
|
|
|
|
- (void)startLoading {
|
|
[self.activityIndicator resumeSpinner];
|
|
}
|
|
|
|
- (void)startLoadingWith:(nullable NSString *) text{
|
|
if([text length] != 0){
|
|
self.indicatorText.text = text;
|
|
self.indicatorText.accessibilityLabel = text;
|
|
}
|
|
[self.activityIndicator resumeSpinner];
|
|
}
|
|
|
|
- (void)stopLoading {
|
|
[self.activityIndicator pauseSpinner];
|
|
}
|
|
|
|
@end
|