Files
2014-12-28 12:40:44 -08:00

84 lines
3.6 KiB
Objective-C

//
// MMViewController.m
// MaterialDesignSpinner
//
// Created by Mike Maxwell on 12/28/2014.
// Copyright (c) 2014 Mike Maxwell. All rights reserved.
//
#import "MMViewController.h"
#import <MMMaterialDesignSpinner.h>
@interface MMViewController ()
@property (nonatomic, strong) MMMaterialDesignSpinner *spinnerView;
@end
@implementation MMViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.translatesAutoresizingMaskIntoConstraints = NO;
MMMaterialDesignSpinner *spinnerView = [[MMMaterialDesignSpinner alloc] initWithFrame:CGRectZero];
self.spinnerView = spinnerView;
self.spinnerView.bounds = CGRectMake(0, 0, 100, 100);
self.spinnerView.tintColor = [UIColor colorWithRed:215.f/255 green:49.f/255 blue:69.f/255 alpha:1];
self.spinnerView.center = CGPointMake(CGRectGetMidX(self.view.bounds), CGRectGetMidY(self.view.bounds));
self.spinnerView.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:self.spinnerView];
UIButton *colorChangeButton = [UIButton buttonWithType:UIButtonTypeSystem];
[colorChangeButton setTitle:@"Change color" forState:UIControlStateNormal];
[colorChangeButton addTarget:self action:@selector(changeColorButtonTouched:) forControlEvents:UIControlEventTouchUpInside];
colorChangeButton.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:colorChangeButton];
UIButton *strokeChangeButton = [UIButton buttonWithType:UIButtonTypeSystem];
[strokeChangeButton setTitle:@"Change line width" forState:UIControlStateNormal];
[strokeChangeButton addTarget:self action:@selector(changeLineWidthButtonTouched:) forControlEvents:UIControlEventTouchUpInside];
strokeChangeButton.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:strokeChangeButton];
UIView *superview = self.view;
NSDictionary *views = NSDictionaryOfVariableBindings(spinnerView, colorChangeButton, superview, strokeChangeButton);
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[superview]-(<=1)-[spinnerView(80)]-[colorChangeButton]-[strokeChangeButton]"
options:NSLayoutFormatAlignAllCenterX
metrics:nil
views:views]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[superview]-(<=1)-[spinnerView(80)]"
options:NSLayoutFormatAlignAllCenterY
metrics:nil
views:views]];
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self.spinnerView startAnimating];
}
#pragma mark Actions
- (void)changeColorButtonTouched:(id)sender {
self.spinnerView.tintColor = [MMViewController randomColor];
}
- (void)changeLineWidthButtonTouched:(id)sender {
self.spinnerView.lineWidth = (rand() % 10) / 2.f;
if (self.spinnerView.lineWidth == 0) self.spinnerView.lineWidth = 0.1f;
}
#pragma mark Helper methods
+ (UIColor *)randomColor {
CGFloat hue = ( arc4random() % 256 / 256.0 ); // 0.0 to 1.0
CGFloat saturation = ( arc4random() % 128 / 256.0 ) + 0.5; // 0.5 to 1.0, away from white
CGFloat brightness = ( arc4random() % 128 / 256.0 ) + 0.5; // 0.5 to 1.0, away from black
return [UIColor colorWithHue:hue saturation:saturation brightness:brightness alpha:1];
}
@end