diff --git a/MONActivityIndicatorViewDemo/MONActivityIndicatorViewDemo/Source/Controllers/MONViewController.m b/MONActivityIndicatorViewDemo/MONActivityIndicatorViewDemo/Source/Controllers/MONViewController.m index 2707b05..12d2346 100644 --- a/MONActivityIndicatorViewDemo/MONActivityIndicatorViewDemo/Source/Controllers/MONViewController.m +++ b/MONActivityIndicatorViewDemo/MONActivityIndicatorViewDemo/Source/Controllers/MONViewController.m @@ -21,41 +21,17 @@ @implementation MONViewController - (void)viewDidLoad { [super viewDidLoad]; - MONActivityIndicatorView *indicatorView = [[MONActivityIndicatorView alloc] init]; + MONActivityIndicatorView *indicatorView = [[MONActivityIndicatorView alloc] initWithParentView:self.view]; indicatorView.delegate = self; indicatorView.numberOfCircles = 3; indicatorView.radius = 20; indicatorView.internalSpacing = 3; [indicatorView startAnimating]; - - [self.view addSubview:indicatorView]; - [self placeAtTheCenterWithView:indicatorView]; - + [NSTimer scheduledTimerWithTimeInterval:7 target:indicatorView selector:@selector(stopAnimating) userInfo:nil repeats:NO]; [NSTimer scheduledTimerWithTimeInterval:9 target:indicatorView selector:@selector(startAnimating) userInfo:nil repeats:NO]; } -#pragma mark - -#pragma mark - Centering Indicator View - -- (void)placeAtTheCenterWithView:(UIView *)view { - [self.view addConstraint:[NSLayoutConstraint constraintWithItem:view - attribute:NSLayoutAttributeCenterX - relatedBy:NSLayoutRelationEqual - toItem:self.view - attribute:NSLayoutAttributeCenterX - multiplier:1.0f - constant:0.0f]]; - - [self.view addConstraint:[NSLayoutConstraint constraintWithItem:view - attribute:NSLayoutAttributeCenterY - relatedBy:NSLayoutRelationEqual - toItem:self.view - attribute:NSLayoutAttributeCenterY - multiplier:1.0f - constant:0.0f]]; -} - #pragma mark - #pragma mark - MONActivityIndicatorViewDelegate Methods diff --git a/MONActivityIndicatorViewDemo/MONActivityIndicatorViewDemo/Source/Views/MONActivityIndicatorView/MONActivityIndicatorView.h b/MONActivityIndicatorViewDemo/MONActivityIndicatorViewDemo/Source/Views/MONActivityIndicatorView/MONActivityIndicatorView.h index 74e3145..b3b3ce4 100644 --- a/MONActivityIndicatorViewDemo/MONActivityIndicatorViewDemo/Source/Views/MONActivityIndicatorView/MONActivityIndicatorView.h +++ b/MONActivityIndicatorViewDemo/MONActivityIndicatorViewDemo/Source/Views/MONActivityIndicatorView/MONActivityIndicatorView.h @@ -29,6 +29,11 @@ @property (weak, nonatomic) id delegate; +/** + Init with parent view and place activity indicator at the center of parent view + */ +- (id)initWithParentView:(UIView*) parentView; + /** Starts the animation of the activity indicator. */ diff --git a/MONActivityIndicatorViewDemo/MONActivityIndicatorViewDemo/Source/Views/MONActivityIndicatorView/MONActivityIndicatorView.m b/MONActivityIndicatorViewDemo/MONActivityIndicatorViewDemo/Source/Views/MONActivityIndicatorView/MONActivityIndicatorView.m index df32a24..a30a7b5 100644 --- a/MONActivityIndicatorViewDemo/MONActivityIndicatorViewDemo/Source/Views/MONActivityIndicatorView/MONActivityIndicatorView.m +++ b/MONActivityIndicatorViewDemo/MONActivityIndicatorViewDemo/Source/Views/MONActivityIndicatorView/MONActivityIndicatorView.m @@ -78,6 +78,16 @@ - (id)initWithCoder:(NSCoder *)aDecoder { return self; } +- (id)initWithParentView:(UIView*) parentView { + self = [super initWithFrame:CGRectZero]; + if (self) { + [self setupDefaults]; + [parentView addSubview:self]; + [self placeAtTheCenterOfView:parentView]; + } + return self; +} + #pragma mark - #pragma mark - Intrinsic Content Size @@ -145,6 +155,27 @@ - (void)removeCircles { }]; } +#pragma mark - +#pragma mark - Centering Indicator View + +- (void)placeAtTheCenterOfView:(UIView *) parentView { + [parentView addConstraint:[NSLayoutConstraint constraintWithItem:self + attribute:NSLayoutAttributeCenterX + relatedBy:NSLayoutRelationEqual + toItem:parentView + attribute:NSLayoutAttributeCenterX + multiplier:1.0f + constant:0.0f]]; + + [parentView addConstraint:[NSLayoutConstraint constraintWithItem:self + attribute:NSLayoutAttributeCenterY + relatedBy:NSLayoutRelationEqual + toItem:parentView + attribute:NSLayoutAttributeCenterY + multiplier:1.0f + constant:0.0f]]; +} + #pragma mark - #pragma mark - Public Methods