Compare commits
27 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d8366e13b3 | |||
| 7168ea9816 | |||
| c60dadedcb | |||
| 045d8993a8 | |||
| c09eab3cbd | |||
| 918abe1bed | |||
| 5f1111d5a6 | |||
| 06a9ea7ef1 | |||
| 4d981288d3 | |||
| 48b06b175f | |||
| 0e09f90a6b | |||
| fb5aa1c791 | |||
| e69fd0437d | |||
| 3fd906b8e5 | |||
| eba12144d0 | |||
| 0a24eb25b4 | |||
| 19239cc1f8 | |||
| b6ecb65e1b | |||
| ec9128fdca | |||
| 9fa3a80c15 | |||
| 4cc77ad643 | |||
| bb33e1a249 | |||
| 0641902706 | |||
| d51a35b59f | |||
| 0e423175cd | |||
| 1dab61273a | |||
| 06c0796405 |
@@ -1,69 +0,0 @@
|
||||
//
|
||||
// M13ProgressConsole.h
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "M13ProgressView.h"
|
||||
|
||||
typedef enum {
|
||||
M13ProgressConsoleMaskTypeNone,
|
||||
M13ProgressConsoleMaskTypeSolidColor,
|
||||
M13ProgressConsoleMaskTypeIOS7Blur
|
||||
} M13ProgressConsoleMaskType;
|
||||
|
||||
typedef enum {
|
||||
M13ProgressConsoleProgressTypePercentage,
|
||||
M13ProgressConsoleProgressTypeDots,
|
||||
M13ProgressConsoleProgressTypeBarOfDots
|
||||
} M13ProgressConsoleProgressType;
|
||||
|
||||
/**A progress view that shows progress in the style of terminal.*/
|
||||
@interface M13ProgressConsole : UITextView;
|
||||
|
||||
/**@name Progress*/
|
||||
/**The progress displayed to the user.*/
|
||||
@property (nonatomic, readonly) CGFloat progress;
|
||||
/**Wether or not the progress view is indeterminate.*/
|
||||
@property (nonatomic, assign) BOOL indeterminate;
|
||||
/**Show progress at the end of each line.*/
|
||||
@property (nonatomic, assign) M13ProgressConsoleProgressType progressType;
|
||||
|
||||
/**@name Appearance*/
|
||||
/**The background type of the console.*/
|
||||
@property (nonatomic, assign) M13ProgressConsoleMaskType maskType;
|
||||
/**The color of the mask if set to solid color.*/
|
||||
@property (nonatomic, retain) UIColor *maskColor;
|
||||
/**Wether or not to show the cursor.*/
|
||||
@property (nonatomic, assign) BOOL showCursor;
|
||||
/**The prefix string for each line.*/
|
||||
@property (nonatomic, retain) NSString *prefix;
|
||||
/**The array containing all the lines displyed.*/
|
||||
@property (nonatomic, retain) NSArray *lines;
|
||||
|
||||
/**@name Properties*/
|
||||
/**The durations of animations in seconds.*/
|
||||
@property (nonatomic, assign) CGFloat animationDuration;
|
||||
|
||||
/**@name Actions*/
|
||||
/**Set the progress of the `M13ProgressView`.
|
||||
@param progress The progress to show on the current line.*/
|
||||
- (void)setProgress:(CGFloat)progress;
|
||||
/**Set the text of the current line.
|
||||
@param currentLine The string to replace the current line with.*/
|
||||
- (void)setCurrentLine:(NSString *)currentLine;
|
||||
/**Add a new line with the given text.
|
||||
@param newLine The text to start a new line with.*/
|
||||
- (void)addNewLineWithString:(NSString *)newLine;
|
||||
/**Clears the console.*/
|
||||
- (void)clear;
|
||||
|
||||
@end
|
||||
@@ -1,344 +0,0 @@
|
||||
//
|
||||
// M13ProgressConsole.m
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
#import "M13ProgressConsole.h"
|
||||
#import "UIImage+ImageEffects.h"
|
||||
|
||||
@interface M13ProgressConsole ()
|
||||
|
||||
@property (nonatomic, readwrite) CGFloat progress;
|
||||
|
||||
@end
|
||||
|
||||
@implementation M13ProgressConsole
|
||||
{
|
||||
NSMutableArray *_mutableLines;
|
||||
NSMutableArray *_lineSuffixes;
|
||||
NSMutableArray *_linePrefixes;
|
||||
NSMutableString *_allPreviousLines;
|
||||
NSTimer *updateTimer;
|
||||
int indeterminateOffset;
|
||||
}
|
||||
|
||||
#pragma mark Initalization and Setup
|
||||
|
||||
- (id)init
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
// Initialization code
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(NSCoder *)aDecoder
|
||||
{
|
||||
self = [super initWithCoder:aDecoder];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)setup
|
||||
{
|
||||
//Set defaults
|
||||
_progressType = M13ProgressConsoleProgressTypePercentage;
|
||||
_maskType = M13ProgressConsoleMaskTypeSolidColor;
|
||||
_maskColor = [UIColor colorWithWhite:0.0 alpha:0.75];
|
||||
self.font = [UIFont systemFontOfSize:14.0];
|
||||
self.textColor = [UIColor whiteColor];
|
||||
self.backgroundColor = [UIColor blackColor];
|
||||
_showCursor = YES;
|
||||
_mutableLines = [NSMutableArray array];
|
||||
_lineSuffixes = [NSMutableArray array];
|
||||
_linePrefixes = [NSMutableArray array];
|
||||
_allPreviousLines = [NSMutableString string];
|
||||
_animationDuration = .1;
|
||||
self.userInteractionEnabled = NO;
|
||||
}
|
||||
|
||||
#pragma marks Properties
|
||||
|
||||
- (void)setProgressType:(M13ProgressConsoleProgressType)progressType
|
||||
{
|
||||
_progressType = progressType;
|
||||
//Clear the suffix for the current line
|
||||
[_lineSuffixes removeLastObject];
|
||||
}
|
||||
|
||||
- (void)setMaskType:(M13ProgressConsoleMaskType)maskType
|
||||
{
|
||||
_maskType = maskType;
|
||||
|
||||
if (_maskType == M13ProgressConsoleMaskTypeNone) {
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
} else if (_maskType == M13ProgressConsoleMaskTypeSolidColor) {
|
||||
self.backgroundColor = _maskColor;
|
||||
} else if (_maskType == M13ProgressConsoleMaskTypeIOS7Blur) {
|
||||
//Get the snapshot of the mask
|
||||
__block UIImage *image = [self snapshotForBlurredBackgroundInView:self];
|
||||
if (image != nil) {
|
||||
//Apply the filters to blur the image
|
||||
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
||||
image = [image applyLightEffect];
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
// Fade on content's change, if there was already an image.
|
||||
CATransition *transition = [CATransition new];
|
||||
transition.duration = 0.3;
|
||||
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
|
||||
transition.type = kCATransitionFade;
|
||||
[self.layer addAnimation:transition forKey:nil];
|
||||
self.backgroundColor = [UIColor colorWithPatternImage:image];
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setMaskColor:(UIColor *)maskColor
|
||||
{
|
||||
_maskColor = maskColor;
|
||||
if (_maskType == M13ProgressConsoleMaskTypeSolidColor) {
|
||||
self.backgroundColor = _maskColor;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setShowCursor:(BOOL)showCursor
|
||||
{
|
||||
_showCursor = showCursor;
|
||||
}
|
||||
|
||||
- (void)setPrefix:(NSString *)prefix
|
||||
{
|
||||
_prefix = prefix;
|
||||
if (_prefix == nil) {
|
||||
_prefix = @"";
|
||||
}
|
||||
}
|
||||
|
||||
- (NSArray *)lines
|
||||
{
|
||||
return [_mutableLines copy];
|
||||
}
|
||||
|
||||
- (void)setLines:(NSArray *)lines
|
||||
{
|
||||
_mutableLines = [lines mutableCopy];
|
||||
}
|
||||
|
||||
#pragma mark Actions
|
||||
|
||||
- (void)setIndeterminate:(BOOL)indeterminate
|
||||
{
|
||||
_indeterminate = indeterminate;
|
||||
if (_indeterminate && !updateTimer) {
|
||||
updateTimer = [NSTimer timerWithTimeInterval:_animationDuration target:self selector:@selector(updateCurrentLine) userInfo:nil repeats:YES];
|
||||
[[NSRunLoop mainRunLoop] addTimer:updateTimer forMode:NSRunLoopCommonModes];
|
||||
} else if (!_indeterminate && updateTimer) {
|
||||
[updateTimer invalidate];
|
||||
updateTimer = nil;
|
||||
indeterminateOffset = 0;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setProgress:(CGFloat)progress
|
||||
{
|
||||
if (progress > 1) {
|
||||
progress = 1;
|
||||
}
|
||||
_progress = progress;
|
||||
[self updateCurrentLine];
|
||||
}
|
||||
|
||||
- (void)setCurrentLine:(NSString *)currentLine
|
||||
{
|
||||
[_mutableLines replaceObjectAtIndex:(_mutableLines.count - 1) withObject:currentLine];
|
||||
[self updateCurrentLine];
|
||||
}
|
||||
|
||||
- (void)addNewLineWithString:(NSString *)newLine
|
||||
{
|
||||
//Add the current line to the all previous lines string
|
||||
if (_mutableLines.count != 0) {
|
||||
[_allPreviousLines appendFormat:@"%@%@%@\n", _linePrefixes.lastObject, _mutableLines.lastObject, _lineSuffixes.lastObject];
|
||||
}
|
||||
//Create the new line
|
||||
[_mutableLines addObject:newLine];
|
||||
[_linePrefixes addObject:[_prefix copy]];
|
||||
[_lineSuffixes addObject:@""];
|
||||
_progress = 0.0;
|
||||
[self updateCurrentLine];
|
||||
}
|
||||
|
||||
- (void)clear
|
||||
{
|
||||
self.text = nil;
|
||||
self.indeterminate = NO;
|
||||
_allPreviousLines = [[NSMutableString alloc] init];
|
||||
_linePrefixes = [[NSMutableArray alloc] init];
|
||||
_lineSuffixes = [[NSMutableArray alloc] init];
|
||||
_mutableLines = [[NSMutableArray alloc] init];
|
||||
}
|
||||
|
||||
#pragma mark Drawing
|
||||
|
||||
- (void)update
|
||||
{
|
||||
NSMutableString *newString = [[NSMutableString alloc] init];
|
||||
_allPreviousLines = [NSMutableString string];
|
||||
for (int i = 0; i < _mutableLines.count; i++) {
|
||||
NSMutableString *newLine = [NSMutableString string];
|
||||
[newLine appendString:_linePrefixes[i]];
|
||||
[newLine appendString:_mutableLines[i]];
|
||||
[newLine appendString:_lineSuffixes[i]];
|
||||
[newLine appendString:@"\n"];
|
||||
[newString appendString:newLine];
|
||||
if (i != _mutableLines.count - 1) {
|
||||
[_allPreviousLines appendString:newLine];
|
||||
}
|
||||
}
|
||||
self.text = newString;
|
||||
[self scrollRectToVisible:CGRectMake(0, self.frame.size.height, 0, 0) animated:NO];
|
||||
}
|
||||
|
||||
- (void)updateCurrentLine
|
||||
{
|
||||
NSMutableString *currentText = [[NSMutableString alloc] initWithString:_allPreviousLines];
|
||||
[currentText appendString:_linePrefixes.lastObject];
|
||||
[currentText appendString:_mutableLines.lastObject];
|
||||
//Calculate suffix
|
||||
if (_progressType == M13ProgressConsoleProgressTypeDots && (_progress != 0 || _indeterminate)) {
|
||||
NSString *suffix = [self dotsProgressString];
|
||||
[_lineSuffixes replaceObjectAtIndex:(_lineSuffixes.count - 1) withObject:suffix];
|
||||
[currentText appendString:suffix];
|
||||
} else if (_progressType == M13ProgressConsoleProgressTypePercentage && (_progress != 0 || _indeterminate)) {
|
||||
NSString *suffix = [self percentageProgressString];
|
||||
[_lineSuffixes replaceObjectAtIndex:(_lineSuffixes.count - 1) withObject:suffix];
|
||||
[currentText appendString:suffix];
|
||||
} else if (_progressType == M13ProgressConsoleProgressTypeBarOfDots && (_progress != 0 || _indeterminate)) {
|
||||
NSString *suffix = [self barOfDotsProgressString];
|
||||
[_lineSuffixes replaceObjectAtIndex:(_lineSuffixes.count - 1) withObject:suffix];
|
||||
[currentText appendString:suffix];
|
||||
}
|
||||
self.text = currentText;
|
||||
[self scrollRectToVisible:CGRectMake(0, self.frame.size.height, 0, 0) animated:NO];
|
||||
}
|
||||
|
||||
- (NSString *)dotsProgressString
|
||||
{
|
||||
NSMutableString *string = [[NSMutableString alloc] initWithString:@"\n"];
|
||||
if (!_indeterminate) {
|
||||
for (float f = 0; f <= 1; f += .05) {
|
||||
if (f <= _progress) {
|
||||
[string appendString:@"."];
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (indeterminateOffset > 24) {
|
||||
indeterminateOffset = 0;
|
||||
}
|
||||
for (int i = 0; i < 20; i++) {
|
||||
if (i <= indeterminateOffset && i > indeterminateOffset - 5) {
|
||||
[string appendString:@"."];
|
||||
} else {
|
||||
[string appendString:@" "];
|
||||
}
|
||||
}
|
||||
indeterminateOffset += 1;
|
||||
}
|
||||
return string;
|
||||
}
|
||||
|
||||
- (NSString *)percentageProgressString
|
||||
{
|
||||
if (!_indeterminate) {
|
||||
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
|
||||
formatter.numberStyle = NSNumberFormatterPercentStyle;
|
||||
return [NSString stringWithFormat:@"\n%@",[formatter stringFromNumber:[NSNumber numberWithFloat:_progress]]];
|
||||
} else {
|
||||
return @"\n??%";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
- (NSString *)barOfDotsProgressString
|
||||
{
|
||||
NSMutableString *string = [[NSMutableString alloc] initWithString:@"\n"];
|
||||
if (!_indeterminate) {
|
||||
for (float f = 0; f <= 1; f += .05) {
|
||||
if (f <= _progress) {
|
||||
[string appendString:@"∙"];
|
||||
} else {
|
||||
[string appendString:@"."];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (indeterminateOffset > 24) {
|
||||
indeterminateOffset = 0;
|
||||
}
|
||||
for (int i = 0; i < 20; i++) {
|
||||
if (i <= indeterminateOffset && i > indeterminateOffset - 5) {
|
||||
[string appendString:@"∙"];
|
||||
} else {
|
||||
[string appendString:@"."];
|
||||
}
|
||||
}
|
||||
indeterminateOffset += 1;
|
||||
}
|
||||
|
||||
return string;
|
||||
}
|
||||
|
||||
- (UIImage *)snapshotForBlurredBackgroundInView:(UIView *)view
|
||||
{
|
||||
//Translate the view's rect to the superview's rect
|
||||
CGRect viewRect = view.bounds;
|
||||
viewRect = [view convertRect:viewRect toView:self.superview];
|
||||
|
||||
//Hide self if visible
|
||||
BOOL previousViewState = self.hidden;
|
||||
self.hidden = YES;
|
||||
|
||||
//Create a snapshot of the superview
|
||||
UIView *snapshotView = [self.superview resizableSnapshotViewFromRect:viewRect afterScreenUpdates:YES withCapInsets:UIEdgeInsetsZero];
|
||||
//Draw the snapshot view into a UIImage
|
||||
UIGraphicsBeginImageContextWithOptions(snapshotView.bounds.size, YES, [UIScreen mainScreen].scale);
|
||||
CGContextRef context = UIGraphicsGetCurrentContext();
|
||||
CGContextTranslateCTM(context, viewRect.origin.x, viewRect.origin.y);
|
||||
BOOL result = [self.superview drawViewHierarchyInRect:viewRect afterScreenUpdates:YES];
|
||||
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
|
||||
UIGraphicsEndImageContext();
|
||||
|
||||
//Return self to the previous state
|
||||
self.hidden = previousViewState;
|
||||
|
||||
if (result) {
|
||||
return image;
|
||||
} else {
|
||||
return nil;
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,236 @@
|
||||
//
|
||||
// M13HUDController.swift
|
||||
// M13ProgressSuite
|
||||
//
|
||||
// Created by Brandon McQuilkin on 10/8/15.
|
||||
// Copyright © 2015 Brandon McQuilkin. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
/**
|
||||
The possible positions the status title and message can be in.
|
||||
|
||||
- BelowProgress: The text will be below the progress view.
|
||||
- AboveProgress: The text will be above the progress view.
|
||||
- LeadingProgress: The text will lead the progress view.
|
||||
- TrailingProgress: The text will trail the progress view.
|
||||
*/
|
||||
public enum M13HUDStatusTextPosition: Int, RawRepresentable {
|
||||
/// The text will be below the progress view.
|
||||
case BelowProgress
|
||||
/// The text will be above the progress view.
|
||||
case AboveProgress
|
||||
/// The text will lead the progress view.
|
||||
case LeadingProgress
|
||||
/// The text will trail the progress view.
|
||||
case TrailingProgress
|
||||
}
|
||||
|
||||
/**
|
||||
The pre-defined background styles for the HUD. Pass one of these values on initalization to have the background view set up for you.
|
||||
|
||||
- None: Do not add any content to the `backgroundView`.
|
||||
- SolidColor: Set up the `backgroundView` with a solid color background.
|
||||
- LightVisualEffectView: Set up the `backgroundView` with a `UIVisualEffectView` subview initalized with `UIBlurEffectStyleLight` as an option.
|
||||
- ExtraLightVisualEffectView: Set up the `backgroundView` with a `UIVisualEffectView` subview initalized with `UIBlurEffectStyleExtraLight` as an option.
|
||||
- DarkVisualEffectView: Set up the `backgroundView` with a `UIVisualEffectView` subview initalized with `UIBlurEffectStyleDark` as an option.
|
||||
- LightVibrantVisualEffectView: Set up the `backgroundView` with a `UIVisualEffectView` subview initalized with a `UIVibrancyEffect` with `UIBlurEffectStyleLight` as an option.
|
||||
- ExtraLightVibrantVisualEffectView: Set up the `backgroundView` with a `UIVisualEffectView` subview initalized with a `UIVibrancyEffect` with `UIBlurEffectStyleExtraLight` as an option.
|
||||
- DarkVibrantVisualEffectView: Set up the `backgroundView` with a `UIVisualEffectView` subview initalized with a `UIVibrancyEffect` with `UIBlurEffectStyleDark` as an option.
|
||||
*/
|
||||
public enum M13HUDBackgroundStyle: Int, RawRepresentable {
|
||||
/// Do not add any content to the `backgroundView`.
|
||||
case None
|
||||
/// Set up the `backgroundView` with a solid color background.
|
||||
case SolidColor
|
||||
/// Set up the `backgroundView` with a `UIVisualEffectView` subview initalized with `UIBlurEffectStyleLight` as an option.
|
||||
case LightVisualEffectView
|
||||
/// Set up the `backgroundView` with a `UIVisualEffectView` subview initalized with `UIBlurEffectStyleExtraLight` as an option.
|
||||
case ExtraLightVisualEffectView
|
||||
/// Set up the `backgroundView` with a `UIVisualEffectView` subview initalized with `UIBlurEffectStyleDark` as an option.
|
||||
case DarkVisualEffectView
|
||||
/// Set up the `backgroundView` with a `UIVisualEffectView` subview initalized with a `UIVibrancyEffect` with `UIBlurEffectStyleLight` as an option.
|
||||
case LightVibrantVisualEffectView
|
||||
/// Set up the `backgroundView` with a `UIVisualEffectView` subview initalized with a `UIVibrancyEffect` with `UIBlurEffectStyleExtraLight` as an option.
|
||||
case ExtraLightVibrantVisualEffectView
|
||||
/// Set up the `backgroundView` with a `UIVisualEffectView` subview initalized with a `UIVibrancyEffect` with `UIBlurEffectStyleDark` as an option.
|
||||
case DarkVibrantVisualEffectView
|
||||
}
|
||||
|
||||
/**
|
||||
The possible overlay styles of the HUD.
|
||||
|
||||
- FullScreen: The HUD extends over the entire screen.
|
||||
- Rect: The HUD will be a rectangle.
|
||||
- SquareRect: The HUD will be a square.
|
||||
- RoundedRect: The HUD will be a rectangle with rounded corners.
|
||||
- RoundedSquareRect: The HUD will be a square with rounded corners.
|
||||
*/
|
||||
public enum M13HUDOverlayStyle: Int, RawRepresentable {
|
||||
/// The HUD extends over the entire screen.
|
||||
case FullScreen
|
||||
/// The HUD will be a rectangle.
|
||||
case Rect
|
||||
/// The HUD will be a square.
|
||||
case SquareRect
|
||||
/// The HUD will be a rectangle with rounded corners.
|
||||
case RoundedRect
|
||||
/// The HUD will be a square with rounded corners.
|
||||
case RoundedSquareRect
|
||||
}
|
||||
|
||||
/**
|
||||
A customizable view controller that presents an HUD. Works similarly to `UIAlertController`.
|
||||
*/
|
||||
public class M13HUDController: UIViewController {
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Appearance
|
||||
//-------------------------------
|
||||
|
||||
/**
|
||||
The position of the title text relative to the progress view.
|
||||
*/
|
||||
public var titlePosition: M13HUDStatusTextPosition = M13HUDStatusTextPosition.AboveProgress
|
||||
|
||||
/**
|
||||
The position of the message text relative to the progress view.
|
||||
*/
|
||||
public var messagePosition: M13HUDStatusTextPosition = M13HUDStatusTextPosition.BelowProgress
|
||||
|
||||
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Properties
|
||||
//-------------------------------
|
||||
|
||||
/**
|
||||
The message to the user.
|
||||
*/
|
||||
public var message: String?
|
||||
|
||||
/**
|
||||
The view that contains the background view and the content view.
|
||||
*/
|
||||
public let containerView: UIView = UIView()
|
||||
|
||||
/**
|
||||
The view that is the background view. Add any background content to this view.
|
||||
*/
|
||||
public let backgroundView: UIView = UIView()
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Initalization
|
||||
//-------------------------------
|
||||
|
||||
convenience init(backgroundStyle: M13HUDBackgroundStyle) {
|
||||
|
||||
self.init(overlayStyle: M13HUDOverlayStyle.RoundedSquareRect, backgroundStyle: backgroundStyle)
|
||||
}
|
||||
|
||||
convenience init(overlayStyle: M13HUDOverlayStyle) {
|
||||
|
||||
self.init(overlayStyle: overlayStyle, backgroundStyle: M13HUDBackgroundStyle.LightVisualEffectView)
|
||||
}
|
||||
|
||||
convenience init(overlayStyle: M13HUDOverlayStyle, backgroundStyle: M13HUDBackgroundStyle) {
|
||||
|
||||
self.init(nibName: nil, bundle: nil)
|
||||
}
|
||||
|
||||
required public init?(coder aDecoder: NSCoder) {
|
||||
super.init(coder: aDecoder)
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
override public init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
|
||||
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
private func sharedSetup() {
|
||||
// Present over a full screen, as this has the posibility of being semi-transparent.
|
||||
modalPresentationStyle = UIModalPresentationStyle.OverFullScreen
|
||||
|
||||
// Add the necessary views
|
||||
view.addSubview(containerView)
|
||||
containerView.addSubview(backgroundView)
|
||||
|
||||
var constraints: [NSLayoutConstraint] = NSLayoutConstraint.constraintsWithVisualFormat("H:|[backgroundView]|", options: NSLayoutFormatOptions.AlignAllCenterY, metrics: nil, views: ["backgroundView": backgroundView])
|
||||
constraints += NSLayoutConstraint.constraintsWithVisualFormat("V:|[backgroundView]|", options: NSLayoutFormatOptions.AlignAllCenterX, metrics: nil, views: ["backgroundView": backgroundView])
|
||||
NSLayoutConstraint.activateConstraints(constraints)
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Initalization Presets
|
||||
//-------------------------------
|
||||
|
||||
private func setupPresetBackground(backgroundStyle: M13HUDBackgroundStyle) {
|
||||
switch(backgroundStyle) {
|
||||
case .SolidColor:
|
||||
backgroundView.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.3)
|
||||
break
|
||||
case .LightVisualEffectView:
|
||||
setupBackgroundViewWithVisualEffectView(UIVisualEffectView(effect: UIBlurEffect(style: UIBlurEffectStyle.Light)))
|
||||
break
|
||||
case .ExtraLightVisualEffectView:
|
||||
setupBackgroundViewWithVisualEffectView(UIVisualEffectView(effect: UIBlurEffect(style: UIBlurEffectStyle.ExtraLight)))
|
||||
break
|
||||
case .DarkVisualEffectView:
|
||||
setupBackgroundViewWithVisualEffectView(UIVisualEffectView(effect: UIBlurEffect(style: UIBlurEffectStyle.Dark)))
|
||||
break
|
||||
case .LightVibrantVisualEffectView:
|
||||
setupBackgroundViewWithVisualEffectView(UIVisualEffectView(effect: UIVibrancyEffect(forBlurEffect: UIBlurEffect(style: UIBlurEffectStyle.Light))))
|
||||
break
|
||||
case .ExtraLightVibrantVisualEffectView:
|
||||
setupBackgroundViewWithVisualEffectView(UIVisualEffectView(effect: UIVibrancyEffect(forBlurEffect: UIBlurEffect(style: UIBlurEffectStyle.ExtraLight))))
|
||||
break
|
||||
case .DarkVibrantVisualEffectView:
|
||||
setupBackgroundViewWithVisualEffectView(UIVisualEffectView(effect: UIVibrancyEffect(forBlurEffect: UIBlurEffect(style: UIBlurEffectStyle.Dark))))
|
||||
break
|
||||
case .None:
|
||||
// Do nothing
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
private func setupBackgroundViewWithVisualEffectView(view: UIVisualEffectView) {
|
||||
backgroundView.addSubview(view)
|
||||
var constraints: [NSLayoutConstraint] = NSLayoutConstraint.constraintsWithVisualFormat("H:|[view]|", options: NSLayoutFormatOptions.AlignAllCenterY, metrics: nil, views: ["view": view])
|
||||
constraints += NSLayoutConstraint.constraintsWithVisualFormat("V:|[view]|", options: NSLayoutFormatOptions.AlignAllCenterX, metrics: nil, views: ["view": view])
|
||||
NSLayoutConstraint.activateConstraints(constraints)
|
||||
}
|
||||
|
||||
private func setupConstraintsForOverlayStyle(style: M13HUDOverlayStyle) {
|
||||
switch(style) {
|
||||
case .FullScreen:
|
||||
|
||||
break
|
||||
case .Rect:
|
||||
|
||||
break
|
||||
case .SquareRect:
|
||||
|
||||
break
|
||||
case .RoundedRect:
|
||||
|
||||
break
|
||||
case .RoundedSquareRect:
|
||||
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Actions
|
||||
//-------------------------------
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Layout
|
||||
//-------------------------------
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Other
|
||||
//-------------------------------
|
||||
}
|
||||
@@ -1,133 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewHUD.h
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "M13ProgressView.h"
|
||||
|
||||
typedef enum {
|
||||
M13ProgressHUDStatusPositionBelowProgress,
|
||||
M13ProgressHUDStatusPositionAboveProgress,
|
||||
M13ProgressHUDStatusPositionLeftOfProgress,
|
||||
M13ProgressHUDStatusPositionRightOfProgress
|
||||
} M13ProgressHUDStatusPosition;
|
||||
|
||||
typedef enum {
|
||||
M13ProgressHUDMaskTypeNone,
|
||||
M13ProgressHUDMaskTypeSolidColor,
|
||||
M13ProgressHUDMaskTypeGradient,
|
||||
M13ProgressHUDMaskTypeIOS7Blur
|
||||
} M13ProgressHUDMaskType;
|
||||
|
||||
/**A progress HUD to display progress, and a description over a window or view.*/
|
||||
@interface M13ProgressHUD : UIView
|
||||
|
||||
/**@name Initalization*/
|
||||
/**Initalize the HUD with a customized progress view.
|
||||
@param progressView The progres view to display in the HUD.
|
||||
@note If you create the HUD with this method, you are responsible for creating the progress view and setting the frame size of the progress view.*/
|
||||
- (id)initWithProgressView:(M13ProgressView *)progressView;
|
||||
/**Initalize and show the hud with parameters.
|
||||
@param progressView The progress view to show in the HUD.
|
||||
@param indeterminate Wether or not the progress view is indeterminate.
|
||||
@param progress The progress to display in the progress view.
|
||||
@param status The status to display in the HUD.
|
||||
@param maskType The type of mask to use for the HUD.
|
||||
@param view The view to show the HUD in.
|
||||
@return A instance of M13PRogressHUD*/
|
||||
- (id)initAndShowWithProgressView:(M13ProgressView *)progressView progress:(CGFloat)progress indeterminate:(BOOL)indeterminate status:(NSString *)status mask:(M13ProgressHUDMaskType)maskType inView:(UIView *)view;
|
||||
|
||||
/**@name Progress View Convienence Properties*/
|
||||
/**The progress view displaied.*/
|
||||
@property (nonatomic, retain) M13ProgressView *progressView;
|
||||
/**The primary color of the `M13ProgressView`.*/
|
||||
@property (nonatomic, retain) UIColor *primaryColor;
|
||||
/**The secondary color of the `M13ProgressView`.*/
|
||||
@property (nonatomic, retain) UIColor *secondaryColor;
|
||||
/**The progress displayed to the user.*/
|
||||
@property (nonatomic, readonly) CGFloat progress;
|
||||
/**Wether or not the progress view is indeterminate.*/
|
||||
@property (nonatomic, assign) BOOL indeterminate;
|
||||
|
||||
/**@name Appearance*/
|
||||
/**Wether or not a iOS7 style blur is applied to the HUD.*/
|
||||
@property (nonatomic, assign) BOOL applyBlurToBackground;
|
||||
/**The color of the background.*/
|
||||
@property (nonatomic, retain) UIColor *hudBackgroundColor;
|
||||
/**The location of the status label in comparison to the progress view.*/
|
||||
@property (nonatomic, assign) M13ProgressHUDStatusPosition statusPosition;
|
||||
/**The offset distance of the HUD from the center of its superview.*/
|
||||
@property (nonatomic, assign) UIOffset offsetFromCenter;
|
||||
/**The margin between the edge of the HUD and it's progress view and status label.*/
|
||||
@property (nonatomic, assign) CGFloat contentMargin;
|
||||
/**The corner radius of the HUD view.*/
|
||||
@property (nonatomic, assign) CGFloat cornerRadius;
|
||||
/**The type of mask the HUD displays over the view's content.*/
|
||||
@property (nonatomic, assign) M13ProgressHUDMaskType maskType;
|
||||
/**The color of the HUD mask if set to Solid Color or Gradient.*/
|
||||
@property (nonatomic, retain) UIColor *maskColor;
|
||||
/**The color of the status text.*/
|
||||
@property (nonatomic, retain) UIColor *statusColor;
|
||||
/**The font to display the status label with.*/
|
||||
@property (nonatomic, retain) UIFont *statusFont;
|
||||
/**The size of the progress view.*/
|
||||
@property (nonatomic, assign) CGSize progressViewSize;
|
||||
/**The origin of the show/hide animation. show: will animate from this point, and hide: will animate to this point.*/
|
||||
@property (nonatomic, assign) CGPoint animationPoint;
|
||||
|
||||
/**@name Properties*/
|
||||
/**The durations of animations in seconds.*/
|
||||
@property (nonatomic, assign) CGFloat animationDuration;
|
||||
/**The text displayed in the HUD to provide more information to the user.*/
|
||||
@property (nonatomic, retain) NSString *status;
|
||||
/**Minimum size of the HUD.
|
||||
@note If the content is smaller than the minimum size, the HUD will be the minimum size. If larger than the minimum size, the HUD will expand to fit it's content, with a maximum size of its super view.*/
|
||||
@property (nonatomic, assign) CGSize minimumSize;
|
||||
/**Wether or not to dismiss automatically after an action is performed.*/
|
||||
@property (nonatomic, assign) BOOL dismissAfterAction;
|
||||
/**Wether or not the HUD is currenty visible.*/
|
||||
- (BOOL)isVisible;
|
||||
/**Wether or not the HUD will auto rotate to the device orientation.
|
||||
@note If set to `YES`, The HUD will rotate automatically to the device orientation, regardless of the interface orientation. This setting is suggested if the displayed view controller rotates and the HUD is displayed in a UIWindow. If the HUD is contained in a UIViewController. This setting should be set to NO, and the rotation should be set manually via the rotation property.
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL shouldAutorotate;
|
||||
/**The orientation of the HUD.*/
|
||||
@property (nonatomic, assign) UIInterfaceOrientation orientation;
|
||||
|
||||
/**@name Actions*/
|
||||
/**Set the progress of the `M13ProgressView`.
|
||||
@param progress The progress to show on the progress view.
|
||||
@param animated Wether or not to animate the progress change.*/
|
||||
- (void)setProgress:(CGFloat)progress animated:(BOOL)animated;
|
||||
/**Perform the given action if defined. Usually showing success or failure.
|
||||
@param action The action to perform.
|
||||
@param animated Wether or not to animate the change*/
|
||||
- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated;
|
||||
/**Show the progress HUD.
|
||||
@param animated Wether or not to animate the change*/
|
||||
- (void)show:(BOOL)animated;
|
||||
/**Hide the progress HUD.
|
||||
@note This method should be used when the HUD is going to be reused. When the HUD needs to be shown again, use `show:` do not initalize another instance. That will cause a memory leak. If the HUD is not going to be reused, use `dismiss:` instead. To retreive a hidden HUD, either hold onto it with a global variable, or use the `progressHUD` method for UIView.
|
||||
@param animated Wether or not to animate the change*/
|
||||
- (void)hide:(BOOL)animated;
|
||||
/**Dismiss the progress HUD and remove it from its superview.
|
||||
@param animated Wether or not to animate the change*/
|
||||
- (void)dismiss:(BOOL)animated;
|
||||
|
||||
@end
|
||||
|
||||
@interface UIView (M13ProgressHUD)
|
||||
|
||||
/*Retreive the topmost progress hud in the receiver view stack.*/
|
||||
- (M13ProgressHUD *)progressHUD;
|
||||
|
||||
@end
|
||||
@@ -1,802 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewHUD.m
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import "M13ProgressHUD.h"
|
||||
#import "UIImage+ImageEffects.h"
|
||||
|
||||
@interface M13ProgressHUD ()
|
||||
|
||||
@property (nonatomic, readwrite) CGFloat progress;
|
||||
|
||||
@end
|
||||
|
||||
@implementation M13ProgressHUD
|
||||
{
|
||||
UIView *backgroundView;
|
||||
UIView *maskView;
|
||||
UILabel *statusLabel;
|
||||
NSString *optimalStatusString;
|
||||
BOOL onScreen;
|
||||
}
|
||||
|
||||
#pragma mark Initalization and Setup
|
||||
|
||||
- (id)init
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(NSCoder *)aDecoder
|
||||
{
|
||||
self = [super initWithCoder:aDecoder];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithProgressView:(M13ProgressView *)progressView
|
||||
{
|
||||
self = [self init];
|
||||
if (self) {
|
||||
_progressView = progressView;
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initAndShowWithProgressView:(M13ProgressView *)progressView progress:(CGFloat)progress indeterminate:(BOOL)indeterminate status:(NSString *)status mask:(M13ProgressHUDMaskType)maskType inView:(UIView *)view
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
_progressView = progressView;
|
||||
[self setup];
|
||||
self.progress = progress;
|
||||
self.indeterminate = indeterminate;
|
||||
self.status = status;
|
||||
self.maskType = maskType;
|
||||
[view addSubview:self];
|
||||
[self show:YES];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)setup
|
||||
{
|
||||
//Set the defaults for the progress view
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
self.layer.opacity = 0;
|
||||
_primaryColor = [UIColor colorWithRed:0 green:122/255.0 blue:1.0 alpha:1.0];
|
||||
_secondaryColor = [UIColor colorWithRed:181/255.0 green:182/255.0 blue:183/255.0 alpha:1.0];
|
||||
_progress = 0;
|
||||
_indeterminate = NO;
|
||||
_shouldAutorotate = YES;
|
||||
if (self.frame.size.height != 0 && self.frame.size.width != 0) {
|
||||
_progressViewSize = CGSizeMake(150 / 4, 150 / 4);
|
||||
}
|
||||
_animationDuration = .3;
|
||||
//Set the other defaults
|
||||
_applyBlurToBackground = NO;
|
||||
_statusPosition = M13ProgressHUDStatusPositionBelowProgress;
|
||||
_contentMargin = 20.0;
|
||||
_cornerRadius = 20.0;
|
||||
_maskType = M13ProgressHUDMaskTypeNone;
|
||||
_maskColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:.5];
|
||||
_statusColor = [UIColor whiteColor];
|
||||
_statusFont = [UIFont systemFontOfSize:20.0];
|
||||
_minimumSize = CGSizeMake(150, 150);
|
||||
_dismissAfterAction = NO;
|
||||
_hudBackgroundColor = [UIColor colorWithWhite:0 alpha:.8];
|
||||
//Add the proper views
|
||||
maskView = [[UIView alloc] init];
|
||||
[self addSubview:maskView];
|
||||
backgroundView = [[UIView alloc] init];
|
||||
backgroundView.backgroundColor = _hudBackgroundColor;
|
||||
backgroundView.layer.cornerRadius = _cornerRadius;
|
||||
backgroundView.clipsToBounds = YES;
|
||||
[self addSubview:backgroundView];
|
||||
statusLabel = [[UILabel alloc] init];
|
||||
statusLabel.font = _statusFont;
|
||||
statusLabel.textColor = _statusColor;
|
||||
statusLabel.textAlignment = NSTextAlignmentCenter;
|
||||
statusLabel.contentMode = UIViewContentModeTop;
|
||||
statusLabel.lineBreakMode = NSLineBreakByWordWrapping;
|
||||
statusLabel.numberOfLines = 0;
|
||||
[backgroundView addSubview:statusLabel];
|
||||
if (_progressView != nil) {
|
||||
[backgroundView addSubview:_progressView];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma marks Properties
|
||||
|
||||
- (void)setProgressView:(M13ProgressView *)progressView
|
||||
{
|
||||
if (_progressView) {
|
||||
[_progressView removeFromSuperview];
|
||||
}
|
||||
[backgroundView addSubview:progressView];
|
||||
[self setNeedsLayout];
|
||||
}
|
||||
|
||||
- (void)setPrimaryColor:(UIColor *)primaryColor
|
||||
{
|
||||
_primaryColor = primaryColor;
|
||||
_progressView.primaryColor = _primaryColor;
|
||||
}
|
||||
|
||||
- (void)setSecondaryColor:(UIColor *)secondaryColor
|
||||
{
|
||||
_secondaryColor = secondaryColor;
|
||||
_progressView.secondaryColor = _secondaryColor;
|
||||
}
|
||||
|
||||
- (void)setApplyBlurToBackground:(BOOL)applyBlurToBackground
|
||||
{
|
||||
_applyBlurToBackground = applyBlurToBackground;
|
||||
//Only needs to be redrawn if visible
|
||||
if ([self isVisible]) {
|
||||
[self drawBackground];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setStatusPosition:(M13ProgressHUDStatusPosition)statusPosition
|
||||
{
|
||||
_statusPosition = statusPosition;
|
||||
[self setNeedsLayout];
|
||||
}
|
||||
|
||||
- (void)setOffsetFromCenter:(UIOffset)offsetFromCenter
|
||||
{
|
||||
_offsetFromCenter = offsetFromCenter;
|
||||
[self setNeedsLayout];
|
||||
}
|
||||
|
||||
- (void)setContentMargin:(CGFloat)contentMargin
|
||||
{
|
||||
_contentMargin = contentMargin;
|
||||
[self setNeedsLayout];
|
||||
}
|
||||
|
||||
- (void)setCornerRadius:(CGFloat)cornerRadius
|
||||
{
|
||||
_cornerRadius = cornerRadius;
|
||||
backgroundView.layer.cornerRadius = cornerRadius;
|
||||
}
|
||||
|
||||
- (void)setMaskType:(M13ProgressHUDMaskType)maskType
|
||||
{
|
||||
_maskType = maskType;
|
||||
[self drawMask];
|
||||
}
|
||||
|
||||
- (void)setMaskColor:(UIColor *)maskColor
|
||||
{
|
||||
_maskColor = maskColor;
|
||||
[self drawMask];
|
||||
}
|
||||
|
||||
- (void)setStatusColor:(UIColor *)statusColor
|
||||
{
|
||||
_statusColor = statusColor;
|
||||
statusLabel.textColor = _statusColor;
|
||||
}
|
||||
|
||||
- (void)setStatusFont:(UIFont *)statusFont
|
||||
{
|
||||
_statusFont = statusFont;
|
||||
statusLabel.font = _statusFont;
|
||||
[self layoutSubviews];
|
||||
}
|
||||
|
||||
- (void)setAnimationDuration:(CGFloat)animationDuration
|
||||
{
|
||||
_animationDuration = animationDuration;
|
||||
_progressView.animationDuration = _animationDuration;
|
||||
}
|
||||
|
||||
- (void)setStatus:(NSString *)status
|
||||
{
|
||||
_status = status;
|
||||
if (_status.length == 0 || _status == nil) {
|
||||
//Clear the optimal string
|
||||
optimalStatusString = nil;
|
||||
} else {
|
||||
[self recalculateOptimalStatusStringStructure];
|
||||
}
|
||||
[self layoutHUD];
|
||||
}
|
||||
|
||||
- (void)setMinimumSize:(CGSize)minimumSize
|
||||
{
|
||||
_minimumSize = minimumSize;
|
||||
[self recalculateOptimalStatusStringStructure];
|
||||
[self setNeedsLayout];
|
||||
}
|
||||
|
||||
- (void)setDismissAfterAction:(BOOL)dismissAfterAction
|
||||
{
|
||||
_dismissAfterAction = dismissAfterAction;
|
||||
}
|
||||
|
||||
- (void)setHudBackgroundColor:(UIColor *)hudBackgroundColor
|
||||
{
|
||||
_hudBackgroundColor = hudBackgroundColor;
|
||||
if ([self isVisible]) {
|
||||
[self drawBackground];
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL)isVisible
|
||||
{
|
||||
if (self.alpha == 1) {
|
||||
return YES;
|
||||
} else {
|
||||
return NO;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)didMoveToSuperview
|
||||
{
|
||||
if (_maskType == M13ProgressHUDMaskTypeIOS7Blur || _applyBlurToBackground) {\
|
||||
[self setNeedsLayout];
|
||||
[self redrawBlurs];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)didMoveToWindow
|
||||
{
|
||||
if (_maskType == M13ProgressHUDMaskTypeIOS7Blur || _applyBlurToBackground) {
|
||||
[self setNeedsLayout];
|
||||
[self redrawBlurs];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark Actions
|
||||
|
||||
- (void)setIndeterminate:(BOOL)indeterminate
|
||||
{
|
||||
_indeterminate = indeterminate;
|
||||
_progressView.indeterminate = _indeterminate;
|
||||
}
|
||||
|
||||
- (void)setProgress:(CGFloat)progress animated:(BOOL)animated
|
||||
{
|
||||
[_progressView setProgress:progress animated:animated];
|
||||
}
|
||||
|
||||
- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated
|
||||
{
|
||||
[_progressView performAction:action animated:animated];
|
||||
}
|
||||
|
||||
- (void)show:(BOOL)animated
|
||||
{
|
||||
//reset the blurs to the curent screen if need be
|
||||
[self registerForNotificationCenter];
|
||||
[self setNeedsLayout];
|
||||
[self setNeedsDisplay];
|
||||
|
||||
onScreen = YES;
|
||||
|
||||
//Animate the HUD on screen
|
||||
CABasicAnimation *fadeAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
|
||||
fadeAnimation.duration = _animationDuration;
|
||||
fadeAnimation.fromValue = [NSNumber numberWithFloat:0.0];
|
||||
fadeAnimation.toValue = [NSNumber numberWithFloat:1.0];
|
||||
fadeAnimation.removedOnCompletion = YES;
|
||||
|
||||
[self.layer addAnimation:fadeAnimation forKey:@"fadeAnimation"];
|
||||
self.layer.opacity = 1.0;
|
||||
|
||||
CABasicAnimation *scaleAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
|
||||
scaleAnimation.duration = _animationDuration;
|
||||
scaleAnimation.fromValue = [NSNumber numberWithFloat:0.0];
|
||||
scaleAnimation.toValue = [NSNumber numberWithFloat:1.0];
|
||||
scaleAnimation.removedOnCompletion = YES;
|
||||
|
||||
CABasicAnimation *positionAnimation = [CABasicAnimation animationWithKeyPath:@"position"];
|
||||
positionAnimation.duration = _animationDuration;
|
||||
positionAnimation.fromValue = [NSValue valueWithCGPoint:_animationPoint];
|
||||
positionAnimation.toValue = [NSValue valueWithCGPoint:backgroundView.layer.position];
|
||||
positionAnimation.removedOnCompletion = YES;
|
||||
|
||||
CAAnimationGroup *animationGroup = [CAAnimationGroup animation];
|
||||
animationGroup.animations = @[scaleAnimation, positionAnimation];
|
||||
animationGroup.duration = _animationDuration;
|
||||
animationGroup.removedOnCompletion = YES;
|
||||
[backgroundView.layer addAnimation:animationGroup forKey:nil];
|
||||
}
|
||||
|
||||
- (void)hide:(BOOL)animated
|
||||
{
|
||||
[self unregisterFromNotificationCenter];
|
||||
|
||||
onScreen = NO;
|
||||
|
||||
CABasicAnimation *fadeAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
|
||||
fadeAnimation.fromValue = [NSNumber numberWithFloat:1.0];
|
||||
fadeAnimation.toValue = [NSNumber numberWithFloat:0.0];
|
||||
fadeAnimation.removedOnCompletion = YES;
|
||||
|
||||
[self.layer addAnimation:fadeAnimation forKey:@"fadeAnimation"];
|
||||
self.layer.opacity = 0.0;
|
||||
|
||||
CABasicAnimation *scaleAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
|
||||
scaleAnimation.fromValue = [NSNumber numberWithFloat:1.0];
|
||||
scaleAnimation.toValue = [NSNumber numberWithFloat:0.0];
|
||||
scaleAnimation.removedOnCompletion = YES;
|
||||
|
||||
CABasicAnimation *frameAnimation = [CABasicAnimation animationWithKeyPath:@"position"];
|
||||
frameAnimation.fromValue = [NSValue valueWithCGPoint:backgroundView.layer.position];
|
||||
frameAnimation.toValue = [NSValue valueWithCGPoint:_animationPoint];
|
||||
frameAnimation.removedOnCompletion = YES;
|
||||
backgroundView.layer.position = _animationPoint;
|
||||
|
||||
CAAnimationGroup *animationGroup = [CAAnimationGroup animation];
|
||||
animationGroup.animations = @[scaleAnimation, frameAnimation];
|
||||
animationGroup.duration = _animationDuration;
|
||||
animationGroup.removedOnCompletion = YES;
|
||||
[backgroundView.layer addAnimation:animationGroup forKey:nil];
|
||||
}
|
||||
|
||||
- (void)dismiss:(BOOL)animated
|
||||
{
|
||||
[self hide:animated];
|
||||
|
||||
//Removes the HUD from the superview, dismissing it.
|
||||
[self performSelector:@selector(removeFromSuperview) withObject:Nil afterDelay:_animationDuration];
|
||||
}
|
||||
|
||||
#pragma mark - Notifications
|
||||
|
||||
- (void)registerForNotificationCenter {
|
||||
NSNotificationCenter *center = NSNotificationCenter.defaultCenter;
|
||||
[center addObserver:self selector:@selector(deviceOrientationDidChange:) name:UIDeviceOrientationDidChangeNotification object:nil];
|
||||
}
|
||||
|
||||
- (void)unregisterFromNotificationCenter {
|
||||
NSNotificationCenter *center = NSNotificationCenter.defaultCenter;
|
||||
[center removeObserver:self];
|
||||
}
|
||||
|
||||
- (void)deviceOrientationDidChange:(NSNotification *)notification {
|
||||
UIDeviceOrientation deviceOrientation = [notification.object orientation];
|
||||
|
||||
if (_shouldAutorotate && UIDeviceOrientationIsValidInterfaceOrientation(deviceOrientation)) {
|
||||
if (UIDeviceOrientationIsPortrait(deviceOrientation)) {
|
||||
if (deviceOrientation == UIDeviceOrientationPortraitUpsideDown) {
|
||||
_orientation = UIInterfaceOrientationPortraitUpsideDown;
|
||||
} else {
|
||||
_orientation = UIInterfaceOrientationPortrait;
|
||||
}
|
||||
} else {
|
||||
if (deviceOrientation == UIDeviceOrientationLandscapeLeft) {
|
||||
_orientation = UIInterfaceOrientationLandscapeLeft;
|
||||
} else {
|
||||
_orientation = UIInterfaceOrientationLandscapeRight;
|
||||
}
|
||||
}
|
||||
[self layoutHUD];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark Layout
|
||||
|
||||
- (void)willMoveToSuperview:(UIView *)newSuperview
|
||||
{
|
||||
self.frame = CGRectMake(0, 0, newSuperview.frame.size.width, newSuperview.frame.size.height);
|
||||
[self layoutSubviews];
|
||||
}
|
||||
|
||||
- (void)layoutSubviews
|
||||
{
|
||||
[super layoutSubviews];
|
||||
[self layoutHUD];
|
||||
}
|
||||
|
||||
- (void)layoutHUD
|
||||
{
|
||||
//Setup the background rect
|
||||
CGRect backgroundRect = CGRectZero;
|
||||
//Setup the label rect
|
||||
CGRect statusRect = [optimalStatusString boundingRectWithSize:[UIScreen mainScreen].bounds.size options:(NSStringDrawingUsesFontLeading | NSStringDrawingUsesLineFragmentOrigin) attributes:@{NSFontAttributeName : statusLabel.font} context:nil];
|
||||
//Setup the progress rect
|
||||
CGRect progressRect = CGRectMake(0, 0, _progressViewSize.width, _progressViewSize.height);
|
||||
|
||||
//Calculate the rects as per positioning
|
||||
if (optimalStatusString.length != 0 && optimalStatusString != nil) {
|
||||
if (_statusPosition == M13ProgressHUDStatusPositionBelowProgress) {
|
||||
//Calculate background height
|
||||
CGFloat backgroundRectBaseHeight = _progressViewSize.height + _contentMargin * 3;
|
||||
backgroundRect.size.height = backgroundRectBaseHeight + statusRect.size.height;
|
||||
if (backgroundRect.size.height < _minimumSize.height) {
|
||||
backgroundRect.size.height = _minimumSize.height;
|
||||
}
|
||||
//Calculate background width
|
||||
backgroundRect.size.width = (statusRect.size.width > _progressViewSize.width) ? statusRect.size.width : _progressViewSize.width;
|
||||
backgroundRect.size.width += 2 * _contentMargin;
|
||||
if (backgroundRect.size.width < _minimumSize.width) {
|
||||
backgroundRect.size.width = _minimumSize.width;
|
||||
}
|
||||
//Calculate background origin (Calculated to keep the progress bar in the same position on the screen during frame changes.)
|
||||
backgroundRect.origin.x = (self.bounds.size.width / 2.0) - (backgroundRect.size.width / 2.0);
|
||||
backgroundRect.origin.y = (self.bounds.size.height / 2.0) - (backgroundRectBaseHeight / 2.0);
|
||||
//Calculate the progress view rect
|
||||
progressRect.origin.x = (backgroundRect.size.width / 2.0) - (progressRect.size.width / 2.0);
|
||||
progressRect.origin.y = _contentMargin;
|
||||
//Calculate the label rect
|
||||
statusRect.origin.x = (backgroundRect.size.width / 2.0) - (statusRect.size.width / 2.0);
|
||||
statusRect.origin.y = progressRect.origin.y + progressRect.size.height + _contentMargin;
|
||||
|
||||
} else if (_statusPosition == M13ProgressHUDStatusPositionAboveProgress) {
|
||||
//Calculate background height
|
||||
backgroundRect.size.height = _contentMargin + _progressViewSize.height + _contentMargin + statusRect.size.height + _contentMargin;
|
||||
if (backgroundRect.size.height < _minimumSize.height) {
|
||||
backgroundRect.size.height = _minimumSize.height;
|
||||
}
|
||||
//Calculate background width
|
||||
backgroundRect.size.width = (statusRect.size.width > _progressViewSize.width) ? statusRect.size.width : _progressViewSize.width;
|
||||
backgroundRect.size.width += 2 * _contentMargin;
|
||||
if (backgroundRect.size.width < _minimumSize.width) {
|
||||
backgroundRect.size.width = _minimumSize.width;
|
||||
}
|
||||
//Calculate background origin (Calculated to keep the progress bar in the same position on the screen during frame changes.)
|
||||
backgroundRect.origin.x = (self.bounds.size.width / 2.0) - (backgroundRect.size.width / 2.0);
|
||||
backgroundRect.origin.y = (self.bounds.size.height / 2.0) - (_minimumSize.height / 2.0);
|
||||
//Calculate the label rect
|
||||
statusRect.origin.x = (backgroundRect.size.width / 2.0) - (statusRect.size.width / 2.0);
|
||||
statusRect.origin.y = _contentMargin;
|
||||
//Calculate the progress view rect
|
||||
progressRect.origin.x = (backgroundRect.size.width / 2.0) - (progressRect.size.width / 2.0);
|
||||
progressRect.origin.y = statusRect.origin.y + statusRect.size.height + _contentMargin;
|
||||
|
||||
} else if (_statusPosition == M13ProgressHUDStatusPositionLeftOfProgress) {
|
||||
//Calculate background height
|
||||
backgroundRect.size.height = (statusRect.size.height > progressRect.size.height) ? statusRect.size.height : progressRect.size.height;
|
||||
backgroundRect.size.height += 2 * _contentMargin;
|
||||
if (backgroundRect.size.height < _minimumSize.height) {
|
||||
backgroundRect.size.height = _minimumSize.height;
|
||||
}
|
||||
//Calculate background width
|
||||
backgroundRect.size.width = _contentMargin + statusRect.size.width + _contentMargin + progressRect.size.width + _contentMargin;
|
||||
if (backgroundRect.size.width < _minimumSize.width) {
|
||||
backgroundRect.size.width = _minimumSize.width;
|
||||
}
|
||||
//Calculate background origin (Calculated to keep the progress bar in the same position on the screen during frame changes.)
|
||||
backgroundRect.origin.x = (self.bounds.size.width / 2.0) - (backgroundRect.size.width / 2.0);
|
||||
backgroundRect.origin.y = (self.bounds.size.height / 2.0) - (_minimumSize.height / 2.0);
|
||||
//Calculate the label rect
|
||||
statusRect.origin.x = _contentMargin;
|
||||
statusRect.origin.y = (backgroundRect.size.height / 2.0) - (statusRect.size.height / 2.0);
|
||||
//Calculate the progress view rect
|
||||
progressRect.origin.x = statusRect.origin.x + statusRect.size.width + _contentMargin;
|
||||
progressRect.origin.y = (backgroundRect.size.height / 2.0) - (progressRect.size.height / 2.0);
|
||||
|
||||
} else if (_statusPosition == M13ProgressHUDStatusPositionRightOfProgress) {
|
||||
//Calculate background height
|
||||
backgroundRect.size.height = (statusRect.size.height > progressRect.size.height) ? statusRect.size.height : progressRect.size.height;
|
||||
backgroundRect.size.height += 2 * _contentMargin;
|
||||
if (backgroundRect.size.height < _minimumSize.height) {
|
||||
backgroundRect.size.height = _minimumSize.height;
|
||||
}
|
||||
//Calculate background width
|
||||
backgroundRect.size.width = _contentMargin + statusRect.size.width + _contentMargin + progressRect.size.width + _contentMargin;
|
||||
if (backgroundRect.size.width < _minimumSize.width) {
|
||||
backgroundRect.size.width = _minimumSize.width;
|
||||
}
|
||||
//Calculate background origin (Calculated to keep the progress bar in the same position on the screen during frame changes.)
|
||||
backgroundRect.origin.x = (self.bounds.size.width / 2.0) - (backgroundRect.size.width / 2.0);
|
||||
backgroundRect.origin.y = (self.bounds.size.height / 2.0) - (_minimumSize.height / 2.0);
|
||||
//Calculate the progress view rect
|
||||
progressRect.origin.x = _contentMargin;
|
||||
progressRect.origin.y = (backgroundRect.size.height / 2.0) - (progressRect.size.height / 2.0);
|
||||
//Calculate the label rect
|
||||
statusRect.origin.x = progressRect.origin.x + progressRect.size.width + _contentMargin;
|
||||
statusRect.origin.y = (backgroundRect.size.height / 2.0) - (statusRect.size.height / 2.0);
|
||||
}
|
||||
} else {
|
||||
//Calculate background height
|
||||
backgroundRect.size.height = (statusRect.size.height > progressRect.size.height) ? statusRect.size.height : progressRect.size.height;
|
||||
backgroundRect.size.height += 2 * _contentMargin;
|
||||
if (backgroundRect.size.height < _minimumSize.height) {
|
||||
backgroundRect.size.height = _minimumSize.height;
|
||||
}
|
||||
|
||||
//Calculate background width
|
||||
backgroundRect.size.width = (statusRect.size.width > _progressViewSize.width) ? statusRect.size.width : _progressViewSize.width;
|
||||
backgroundRect.size.width += 2 * _contentMargin;
|
||||
if (backgroundRect.size.width < _minimumSize.width) {
|
||||
backgroundRect.size.width = _minimumSize.width;
|
||||
}
|
||||
|
||||
backgroundRect.origin.x = (self.bounds.size.width / 2.0) - (backgroundRect.size.width / 2.0);
|
||||
backgroundRect.origin.y = (self.bounds.size.height / 2.0) - (_minimumSize.height / 2.0);
|
||||
|
||||
//There is no status label text, center the progress view
|
||||
progressRect.origin.x = (backgroundRect.size.width / 2.0) - (progressRect.size.width / 2.0);
|
||||
progressRect.origin.y = (backgroundRect.size.height / 2.0) - (progressRect.size.height / 2.0);
|
||||
statusRect.size.width = 0.0;
|
||||
statusRect.size.height = 0.0;
|
||||
}
|
||||
|
||||
//Swap height and with on rotation
|
||||
if (_orientation == UIInterfaceOrientationLandscapeLeft || _orientation == UIInterfaceOrientationLandscapeRight) {
|
||||
//Flip the width and height.
|
||||
CGFloat temp = backgroundRect.size.width;
|
||||
backgroundRect.size.width = backgroundRect.size.height;
|
||||
backgroundRect.size.height = temp;
|
||||
}
|
||||
|
||||
if (onScreen) {
|
||||
//Set the frame of the background and its subviews
|
||||
[UIView animateWithDuration:_animationDuration animations:^{
|
||||
backgroundView.frame = CGRectIntegral(backgroundRect);
|
||||
_progressView.frame = CGRectIntegral(progressRect);
|
||||
backgroundView.transform = CGAffineTransformMakeRotation([self angleForDeviceOrientation]);
|
||||
//Fade the label
|
||||
statusLabel.alpha = 0.0;
|
||||
} completion:^(BOOL finished) {
|
||||
if (finished) {
|
||||
//Set the label frame
|
||||
statusLabel.frame = CGRectIntegral(statusRect);
|
||||
statusLabel.text = optimalStatusString;
|
||||
[UIView animateWithDuration:_animationDuration animations:^{
|
||||
//Show the label
|
||||
statusLabel.alpha = 1.0;
|
||||
}];
|
||||
}
|
||||
}];
|
||||
} else {
|
||||
backgroundView.frame = CGRectIntegral(backgroundRect);
|
||||
_progressView.frame = CGRectIntegral(progressRect);
|
||||
backgroundView.transform = CGAffineTransformMakeRotation([self angleForDeviceOrientation]);
|
||||
//Fade the label
|
||||
statusLabel.alpha = 0.0;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
- (void)recalculateOptimalStatusStringStructure
|
||||
{
|
||||
if ([_status rangeOfString:@" "].location == NSNotFound || [_status rangeOfString:@"\n"].location != NSNotFound) {
|
||||
//One word, just pass the string as is.
|
||||
//Or has line breaks, so follow them.
|
||||
optimalStatusString = [_status copy];
|
||||
} else if ([_status rangeOfString:@" "].location != NSNotFound && [_status rangeOfString:@"\n"].location == NSNotFound) {
|
||||
//There are spaces, but no line breaks. Insert line breaks as needed.
|
||||
//Break the status into indivual words
|
||||
NSArray *wordsArray = [_status componentsSeparatedByString:@" "];
|
||||
//Calculate the mean width and standard deviation to use as parameters for where line breaks should go.
|
||||
float meanWidth = 0.0;
|
||||
float standardDeviation = 0.0;
|
||||
NSMutableArray *sizesArray = [NSMutableArray array];
|
||||
//Calculate size of each word
|
||||
for (NSString *word in wordsArray) {
|
||||
CGRect wordRect = [word boundingRectWithSize:[UIScreen mainScreen].bounds.size options:(NSStringDrawingUsesFontLeading | NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin) attributes:@{NSFontAttributeName : statusLabel.font} context:nil];
|
||||
[sizesArray addObject:NSStringFromCGRect(wordRect)];
|
||||
//Sum the widths to calculate the mean width
|
||||
meanWidth += wordRect.size.width;
|
||||
}
|
||||
//Finish the mean size and standard deviation calculations
|
||||
meanWidth = roundf(meanWidth / wordsArray.count);
|
||||
//Calculate the standard deviation
|
||||
for (NSString *rect in sizesArray) {
|
||||
CGRect theRect = CGRectFromString(rect);
|
||||
//Sum the widths to calculate the mean width
|
||||
standardDeviation += exp2f(theRect.size.width - meanWidth);
|
||||
}
|
||||
standardDeviation = sqrtf(standardDeviation / wordsArray.count);
|
||||
//Correct the mean width if it is below the minimum size
|
||||
if (meanWidth < _minimumSize.width) {
|
||||
meanWidth = _minimumSize.width;
|
||||
}
|
||||
|
||||
//Now calculate where to put line breaks. Lines can exceed the minimum width, but cannot exceed the minimum width plus the standard deviation. Single words can excced these limits.
|
||||
NSMutableString *correctedString = [[NSMutableString alloc] initWithString:wordsArray[0]];
|
||||
float lineSize = CGRectFromString(sizesArray[0]).size.width;
|
||||
for (int i = 1; i < wordsArray.count; i++) {
|
||||
NSString *word = wordsArray[i];
|
||||
CGRect wordRect = CGRectFromString(sizesArray[i]);
|
||||
if (lineSize + wordRect.size.width > meanWidth + standardDeviation) {
|
||||
//If the max width is exceeded, add a new line
|
||||
[correctedString appendFormat:@"\n"];
|
||||
} else {
|
||||
//append a space before the new word
|
||||
[correctedString appendFormat:@" "];
|
||||
}
|
||||
//Append the string
|
||||
[correctedString appendString:word];
|
||||
}
|
||||
//Set the optimal string
|
||||
optimalStatusString = correctedString;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark Drawing
|
||||
|
||||
- (void)drawRect:(CGRect)rect
|
||||
{
|
||||
[super drawRect:rect];
|
||||
[self drawMask];
|
||||
[self drawBackground];
|
||||
}
|
||||
|
||||
- (void)drawBackground
|
||||
{
|
||||
//Set the proper color
|
||||
if (_applyBlurToBackground == NO) {
|
||||
backgroundView.backgroundColor = _hudBackgroundColor;
|
||||
} else {
|
||||
//Redraw the hud blur
|
||||
[self redrawBlurs];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)drawMask
|
||||
{
|
||||
maskView.frame = CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height);
|
||||
if (_maskType == M13ProgressHUDMaskTypeNone) {
|
||||
maskView.backgroundColor = [UIColor clearColor];
|
||||
} else if (_maskType == M13ProgressHUDMaskTypeSolidColor) {
|
||||
maskView.backgroundColor = _maskColor;
|
||||
} else if (_maskType == M13ProgressHUDMaskTypeGradient) {
|
||||
//Get the components of color of the maskColor
|
||||
CGFloat red;
|
||||
CGFloat green;
|
||||
CGFloat blue;
|
||||
CGFloat alpha;
|
||||
[_maskColor getRed:&red green:&green blue:&blue alpha:&alpha];
|
||||
//Create the gradient as an image, and then set it as the color of the mask view.
|
||||
UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, [UIScreen mainScreen].scale);
|
||||
CGContextRef context = UIGraphicsGetCurrentContext();
|
||||
//Create the gradient
|
||||
size_t locationsCount = 2;
|
||||
CGFloat locations[2] = {0.0f, 1.0f};
|
||||
CGFloat colors[8] = {0.0f, 0.0f, 0.0f, 0.0f, red, green, blue, alpha};
|
||||
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
|
||||
CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, colors, locations, locationsCount);
|
||||
CGColorSpaceRelease(colorSpace);
|
||||
//Draw the gradient
|
||||
CGPoint center = CGPointMake(self.bounds.size.width / 2.0, self.bounds.size.height / 2.0);
|
||||
float radius = MIN(self.bounds.size.width , self.bounds.size.height) ;
|
||||
CGContextDrawRadialGradient (context, gradient, center, 0, center, radius, kCGGradientDrawsAfterEndLocation);
|
||||
CGGradientRelease(gradient);
|
||||
//Get the gradient image
|
||||
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
|
||||
UIGraphicsEndImageContext();
|
||||
//Set the background
|
||||
maskView.backgroundColor = [UIColor colorWithPatternImage:image];
|
||||
} else if (_maskType == M13ProgressHUDMaskTypeIOS7Blur) {
|
||||
// do nothing; we don't want to take a snapshot of the background for blurring now, no idea what the background is
|
||||
}
|
||||
}
|
||||
|
||||
- (void)redrawBlurs
|
||||
{
|
||||
if (_maskType == M13ProgressHUDMaskTypeIOS7Blur) {
|
||||
//Get the snapshot of the mask
|
||||
__block UIImage *image = [self snapshotForBlurredBackgroundInView:maskView];
|
||||
if (image != nil) {
|
||||
//Apply the filters to blur the image
|
||||
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
||||
image = [image applyLightEffect];
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
// Fade on content's change, if there was already an image.
|
||||
CATransition *transition = [CATransition new];
|
||||
transition.duration = 0.3;
|
||||
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
|
||||
transition.type = kCATransitionFade;
|
||||
[maskView.layer addAnimation:transition forKey:nil];
|
||||
maskView.backgroundColor = [UIColor colorWithPatternImage:image];
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
if (_applyBlurToBackground) {
|
||||
//Get the snapshot of the mask
|
||||
__block UIImage *image = [self snapshotForBlurredBackgroundInView:backgroundView];
|
||||
if (image != nil) {
|
||||
//Apply the filters to blur the image
|
||||
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
||||
//image = [image applyLightEffect];
|
||||
image = [image applyLightEffect];
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
// Fade on content's change, if there was already an image.
|
||||
CATransition *transition = [CATransition new];
|
||||
transition.duration = 0.3;
|
||||
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
|
||||
transition.type = kCATransitionFade;
|
||||
[backgroundView.layer addAnimation:transition forKey:nil];
|
||||
backgroundView.backgroundColor = [UIColor colorWithPatternImage:image];
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (UIImage *)snapshotForBlurredBackgroundInView:(UIView *)view
|
||||
{
|
||||
//Translate the view's rect to the superview's rect
|
||||
CGRect viewRect = view.bounds;
|
||||
viewRect = [view convertRect:viewRect toView:self.superview];
|
||||
|
||||
//Hide self if visible
|
||||
BOOL previousViewState = self.hidden;
|
||||
self.hidden = YES;
|
||||
|
||||
//Create a snapshot of the superview
|
||||
UIView *snapshotView = [self.superview resizableSnapshotViewFromRect:viewRect afterScreenUpdates:YES withCapInsets:UIEdgeInsetsZero];
|
||||
//Draw the snapshot view into a UIImage
|
||||
UIGraphicsBeginImageContextWithOptions(snapshotView.bounds.size, YES, [UIScreen mainScreen].scale);
|
||||
CGContextRef context = UIGraphicsGetCurrentContext();
|
||||
if (!context) {
|
||||
return nil;
|
||||
}
|
||||
CGContextTranslateCTM(context, viewRect.origin.x, viewRect.origin.y);
|
||||
BOOL result = [self.superview drawViewHierarchyInRect:viewRect afterScreenUpdates:YES];
|
||||
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
|
||||
UIGraphicsEndImageContext();
|
||||
|
||||
//Return self to the previous state
|
||||
self.hidden = previousViewState;
|
||||
|
||||
if (result) {
|
||||
return image;
|
||||
} else {
|
||||
return nil;
|
||||
}
|
||||
}
|
||||
|
||||
- (CGFloat)angleForDeviceOrientation
|
||||
{
|
||||
if (_orientation == UIInterfaceOrientationLandscapeLeft) {
|
||||
return M_PI_2;
|
||||
} else if (_orientation == UIInterfaceOrientationLandscapeRight) {
|
||||
return -M_PI_2;
|
||||
} else if (_orientation == UIInterfaceOrientationPortraitUpsideDown) {
|
||||
return M_PI;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation UIView (M13ProgressHUD)
|
||||
|
||||
- (M13ProgressHUD *)progressHUD
|
||||
{
|
||||
for (id view in self.subviews) {
|
||||
//If the subview is a progress HUD return it.
|
||||
if ([[view class] isSubclassOfClass:[M13ProgressHUD class]]) {
|
||||
return view;
|
||||
}
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,107 +0,0 @@
|
||||
/*
|
||||
File: UIImage+ImageEffects.h
|
||||
Abstract: This is a category of UIImage that adds methods to apply blur and tint effects to an image. This is the code you’ll want to look out to find out how to use vImage to efficiently calculate a blur.
|
||||
Version: 1.0
|
||||
|
||||
Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple
|
||||
Inc. ("Apple") in consideration of your agreement to the following
|
||||
terms, and your use, installation, modification or redistribution of
|
||||
this Apple software constitutes acceptance of these terms. If you do
|
||||
not agree with these terms, please do not use, install, modify or
|
||||
redistribute this Apple software.
|
||||
|
||||
In consideration of your agreement to abide by the following terms, and
|
||||
subject to these terms, Apple grants you a personal, non-exclusive
|
||||
license, under Apple's copyrights in this original Apple software (the
|
||||
"Apple Software"), to use, reproduce, modify and redistribute the Apple
|
||||
Software, with or without modifications, in source and/or binary forms;
|
||||
provided that if you redistribute the Apple Software in its entirety and
|
||||
without modifications, you must retain this notice and the following
|
||||
text and disclaimers in all such redistributions of the Apple Software.
|
||||
Neither the name, trademarks, service marks or logos of Apple Inc. may
|
||||
be used to endorse or promote products derived from the Apple Software
|
||||
without specific prior written permission from Apple. Except as
|
||||
expressly stated in this notice, no other rights or licenses, express or
|
||||
implied, are granted by Apple herein, including but not limited to any
|
||||
patent rights that may be infringed by your derivative works or by other
|
||||
works in which the Apple Software may be incorporated.
|
||||
|
||||
The Apple Software is provided by Apple on an "AS IS" basis. APPLE
|
||||
MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
|
||||
THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
|
||||
FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
|
||||
OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
|
||||
IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
|
||||
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
|
||||
MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
|
||||
AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
|
||||
STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Copyright (C) 2013 Apple Inc. All Rights Reserved.
|
||||
|
||||
|
||||
Copyright © 2013 Apple Inc. All rights reserved.
|
||||
WWDC 2013 License
|
||||
|
||||
NOTE: This Apple Software was supplied by Apple as part of a WWDC 2013
|
||||
Session. Please refer to the applicable WWDC 2013 Session for further
|
||||
information.
|
||||
|
||||
IMPORTANT: This Apple software is supplied to you by Apple Inc.
|
||||
("Apple") in consideration of your agreement to the following terms, and
|
||||
your use, installation, modification or redistribution of this Apple
|
||||
software constitutes acceptance of these terms. If you do not agree with
|
||||
these terms, please do not use, install, modify or redistribute this
|
||||
Apple software.
|
||||
|
||||
In consideration of your agreement to abide by the following terms, and
|
||||
subject to these terms, Apple grants you a non-exclusive license, under
|
||||
Apple's copyrights in this original Apple software (the "Apple
|
||||
Software"), to use, reproduce, modify and redistribute the Apple
|
||||
Software, with or without modifications, in source and/or binary forms;
|
||||
provided that if you redistribute the Apple Software in its entirety and
|
||||
without modifications, you must retain this notice and the following
|
||||
text and disclaimers in all such redistributions of the Apple Software.
|
||||
Neither the name, trademarks, service marks or logos of Apple Inc. may
|
||||
be used to endorse or promote products derived from the Apple Software
|
||||
without specific prior written permission from Apple. Except as
|
||||
expressly stated in this notice, no other rights or licenses, express or
|
||||
implied, are granted by Apple herein, including but not limited to any
|
||||
patent rights that may be infringed by your derivative works or by other
|
||||
works in which the Apple Software may be incorporated.
|
||||
|
||||
The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES
|
||||
NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE
|
||||
IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
|
||||
OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
|
||||
IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
|
||||
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
|
||||
MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
|
||||
AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
|
||||
STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
EA1002
|
||||
5/3/2013
|
||||
*/
|
||||
|
||||
@import UIKit;
|
||||
|
||||
@interface UIImage (ImageEffects)
|
||||
|
||||
- (UIImage *)applyLightEffect;
|
||||
- (UIImage *)applyExtraLightEffect;
|
||||
- (UIImage *)applyDarkEffect;
|
||||
- (UIImage *)applyTintEffectWithColor:(UIColor *)tintColor;
|
||||
|
||||
- (UIImage *)applyBlurWithRadius:(CGFloat)blurRadius tintColor:(UIColor *)tintColor saturationDeltaFactor:(CGFloat)saturationDeltaFactor maskImage:(UIImage *)maskImage;
|
||||
|
||||
@end
|
||||
@@ -1,278 +0,0 @@
|
||||
/*
|
||||
File: UIImage+ImageEffects.m
|
||||
Abstract: This is a category of UIImage that adds methods to apply blur and tint effects to an image. This is the code you’ll want to look out to find out how to use vImage to efficiently calculate a blur.
|
||||
Version: 1.0
|
||||
|
||||
Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple
|
||||
Inc. ("Apple") in consideration of your agreement to the following
|
||||
terms, and your use, installation, modification or redistribution of
|
||||
this Apple software constitutes acceptance of these terms. If you do
|
||||
not agree with these terms, please do not use, install, modify or
|
||||
redistribute this Apple software.
|
||||
|
||||
In consideration of your agreement to abide by the following terms, and
|
||||
subject to these terms, Apple grants you a personal, non-exclusive
|
||||
license, under Apple's copyrights in this original Apple software (the
|
||||
"Apple Software"), to use, reproduce, modify and redistribute the Apple
|
||||
Software, with or without modifications, in source and/or binary forms;
|
||||
provided that if you redistribute the Apple Software in its entirety and
|
||||
without modifications, you must retain this notice and the following
|
||||
text and disclaimers in all such redistributions of the Apple Software.
|
||||
Neither the name, trademarks, service marks or logos of Apple Inc. may
|
||||
be used to endorse or promote products derived from the Apple Software
|
||||
without specific prior written permission from Apple. Except as
|
||||
expressly stated in this notice, no other rights or licenses, express or
|
||||
implied, are granted by Apple herein, including but not limited to any
|
||||
patent rights that may be infringed by your derivative works or by other
|
||||
works in which the Apple Software may be incorporated.
|
||||
|
||||
The Apple Software is provided by Apple on an "AS IS" basis. APPLE
|
||||
MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
|
||||
THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
|
||||
FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
|
||||
OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
|
||||
IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
|
||||
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
|
||||
MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
|
||||
AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
|
||||
STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Copyright (C) 2013 Apple Inc. All Rights Reserved.
|
||||
|
||||
|
||||
Copyright © 2013 Apple Inc. All rights reserved.
|
||||
WWDC 2013 License
|
||||
|
||||
NOTE: This Apple Software was supplied by Apple as part of a WWDC 2013
|
||||
Session. Please refer to the applicable WWDC 2013 Session for further
|
||||
information.
|
||||
|
||||
IMPORTANT: This Apple software is supplied to you by Apple Inc.
|
||||
("Apple") in consideration of your agreement to the following terms, and
|
||||
your use, installation, modification or redistribution of this Apple
|
||||
software constitutes acceptance of these terms. If you do not agree with
|
||||
these terms, please do not use, install, modify or redistribute this
|
||||
Apple software.
|
||||
|
||||
In consideration of your agreement to abide by the following terms, and
|
||||
subject to these terms, Apple grants you a non-exclusive license, under
|
||||
Apple's copyrights in this original Apple software (the "Apple
|
||||
Software"), to use, reproduce, modify and redistribute the Apple
|
||||
Software, with or without modifications, in source and/or binary forms;
|
||||
provided that if you redistribute the Apple Software in its entirety and
|
||||
without modifications, you must retain this notice and the following
|
||||
text and disclaimers in all such redistributions of the Apple Software.
|
||||
Neither the name, trademarks, service marks or logos of Apple Inc. may
|
||||
be used to endorse or promote products derived from the Apple Software
|
||||
without specific prior written permission from Apple. Except as
|
||||
expressly stated in this notice, no other rights or licenses, express or
|
||||
implied, are granted by Apple herein, including but not limited to any
|
||||
patent rights that may be infringed by your derivative works or by other
|
||||
works in which the Apple Software may be incorporated.
|
||||
|
||||
The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES
|
||||
NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE
|
||||
IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
|
||||
OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
|
||||
IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
|
||||
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
|
||||
MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
|
||||
AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
|
||||
STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
EA1002
|
||||
5/3/2013
|
||||
*/
|
||||
|
||||
#import "UIImage+ImageEffects.h"
|
||||
|
||||
@import Accelerate;
|
||||
#import <float.h>
|
||||
|
||||
|
||||
@implementation UIImage (ImageEffects)
|
||||
|
||||
|
||||
- (UIImage *)applyLightEffect
|
||||
{
|
||||
UIColor *tintColor = [UIColor colorWithWhite:1.0 alpha:0.5];
|
||||
return [self applyBlurWithRadius:30 tintColor:tintColor saturationDeltaFactor:1.8 maskImage:nil];
|
||||
}
|
||||
|
||||
|
||||
- (UIImage *)applyExtraLightEffect
|
||||
{
|
||||
UIColor *tintColor = [UIColor colorWithWhite:0.97 alpha:0.82];
|
||||
return [self applyBlurWithRadius:20 tintColor:tintColor saturationDeltaFactor:1.8 maskImage:nil];
|
||||
}
|
||||
|
||||
|
||||
- (UIImage *)applyDarkEffect
|
||||
{
|
||||
UIColor *tintColor = [UIColor colorWithWhite:0.11 alpha:0.73];
|
||||
return [self applyBlurWithRadius:20 tintColor:tintColor saturationDeltaFactor:1.8 maskImage:nil];
|
||||
}
|
||||
|
||||
|
||||
- (UIImage *)applyTintEffectWithColor:(UIColor *)tintColor
|
||||
{
|
||||
const CGFloat EffectColorAlpha = 0.6;
|
||||
UIColor *effectColor = tintColor;
|
||||
NSInteger componentCount = CGColorGetNumberOfComponents(tintColor.CGColor);
|
||||
if (componentCount == 2) {
|
||||
CGFloat b;
|
||||
if ([tintColor getWhite:&b alpha:NULL]) {
|
||||
effectColor = [UIColor colorWithWhite:b alpha:EffectColorAlpha];
|
||||
}
|
||||
}
|
||||
else {
|
||||
CGFloat r, g, b;
|
||||
if ([tintColor getRed:&r green:&g blue:&b alpha:NULL]) {
|
||||
effectColor = [UIColor colorWithRed:r green:g blue:b alpha:EffectColorAlpha];
|
||||
}
|
||||
}
|
||||
return [self applyBlurWithRadius:10 tintColor:effectColor saturationDeltaFactor:-1.0 maskImage:nil];
|
||||
}
|
||||
|
||||
|
||||
- (UIImage *)applyBlurWithRadius:(CGFloat)blurRadius tintColor:(UIColor *)tintColor saturationDeltaFactor:(CGFloat)saturationDeltaFactor maskImage:(UIImage *)maskImage
|
||||
{
|
||||
// Check pre-conditions.
|
||||
if (self.size.width < 1 || self.size.height < 1) {
|
||||
NSLog (@"*** error: invalid size: (%.2f x %.2f). Both dimensions must be >= 1: %@", self.size.width, self.size.height, self);
|
||||
return nil;
|
||||
}
|
||||
if (!self.CGImage) {
|
||||
NSLog (@"*** error: image must be backed by a CGImage: %@", self);
|
||||
return nil;
|
||||
}
|
||||
if (maskImage && !maskImage.CGImage) {
|
||||
NSLog (@"*** error: maskImage must be backed by a CGImage: %@", maskImage);
|
||||
return nil;
|
||||
}
|
||||
|
||||
CGRect imageRect = { CGPointZero, self.size };
|
||||
UIImage *effectImage = self;
|
||||
|
||||
BOOL hasBlur = blurRadius > __FLT_EPSILON__;
|
||||
BOOL hasSaturationChange = fabs(saturationDeltaFactor - 1.) > __FLT_EPSILON__;
|
||||
if (hasBlur || hasSaturationChange) {
|
||||
UIGraphicsBeginImageContextWithOptions(self.size, NO, [UIScreen mainScreen].scale);
|
||||
CGContextRef effectInContext = UIGraphicsGetCurrentContext();
|
||||
CGContextScaleCTM(effectInContext, 1.0, -1.0);
|
||||
CGContextTranslateCTM(effectInContext, 0, -self.size.height);
|
||||
CGContextDrawImage(effectInContext, imageRect, self.CGImage);
|
||||
|
||||
vImage_Buffer effectInBuffer;
|
||||
effectInBuffer.data = CGBitmapContextGetData(effectInContext);
|
||||
effectInBuffer.width = CGBitmapContextGetWidth(effectInContext);
|
||||
effectInBuffer.height = CGBitmapContextGetHeight(effectInContext);
|
||||
effectInBuffer.rowBytes = CGBitmapContextGetBytesPerRow(effectInContext);
|
||||
|
||||
UIGraphicsBeginImageContextWithOptions(self.size, NO, [UIScreen mainScreen].scale);
|
||||
CGContextRef effectOutContext = UIGraphicsGetCurrentContext();
|
||||
vImage_Buffer effectOutBuffer;
|
||||
effectOutBuffer.data = CGBitmapContextGetData(effectOutContext);
|
||||
effectOutBuffer.width = CGBitmapContextGetWidth(effectOutContext);
|
||||
effectOutBuffer.height = CGBitmapContextGetHeight(effectOutContext);
|
||||
effectOutBuffer.rowBytes = CGBitmapContextGetBytesPerRow(effectOutContext);
|
||||
|
||||
if (hasBlur) {
|
||||
// A description of how to compute the box kernel width from the Gaussian
|
||||
// radius (aka standard deviation) appears in the SVG spec:
|
||||
// http://www.w3.org/TR/SVG/filters.html#feGaussianBlurElement
|
||||
//
|
||||
// For larger values of 's' (s >= 2.0), an approximation can be used: Three
|
||||
// successive box-blurs build a piece-wise quadratic convolution kernel, which
|
||||
// approximates the Gaussian kernel to within roughly 3%.
|
||||
//
|
||||
// let d = floor(s * 3*sqrt(2*pi)/4 + 0.5)
|
||||
//
|
||||
// ... if d is odd, use three box-blurs of size 'd', centered on the output pixel.
|
||||
//
|
||||
CGFloat inputRadius = blurRadius * [[UIScreen mainScreen] scale];
|
||||
unsigned int radius = floor(inputRadius * 3. * sqrt(2 * M_PI) / 4 + 0.5);
|
||||
if (radius % 2 != 1) {
|
||||
radius += 1; // force radius to be odd so that the three box-blur methodology works.
|
||||
}
|
||||
vImageBoxConvolve_ARGB8888(&effectInBuffer, &effectOutBuffer, NULL, 0, 0, radius, radius, 0, kvImageEdgeExtend);
|
||||
vImageBoxConvolve_ARGB8888(&effectOutBuffer, &effectInBuffer, NULL, 0, 0, radius, radius, 0, kvImageEdgeExtend);
|
||||
vImageBoxConvolve_ARGB8888(&effectInBuffer, &effectOutBuffer, NULL, 0, 0, radius, radius, 0, kvImageEdgeExtend);
|
||||
}
|
||||
BOOL effectImageBuffersAreSwapped = NO;
|
||||
if (hasSaturationChange) {
|
||||
CGFloat s = saturationDeltaFactor;
|
||||
CGFloat floatingPointSaturationMatrix[] = {
|
||||
0.0722 + 0.9278 * s, 0.0722 - 0.0722 * s, 0.0722 - 0.0722 * s, 0,
|
||||
0.7152 - 0.7152 * s, 0.7152 + 0.2848 * s, 0.7152 - 0.7152 * s, 0,
|
||||
0.2126 - 0.2126 * s, 0.2126 - 0.2126 * s, 0.2126 + 0.7873 * s, 0,
|
||||
0, 0, 0, 1,
|
||||
};
|
||||
const int32_t divisor = 256;
|
||||
NSUInteger matrixSize = sizeof(floatingPointSaturationMatrix)/sizeof(floatingPointSaturationMatrix[0]);
|
||||
int16_t saturationMatrix[matrixSize];
|
||||
for (NSUInteger i = 0; i < matrixSize; ++i) {
|
||||
saturationMatrix[i] = (int16_t)roundf(floatingPointSaturationMatrix[i] * divisor);
|
||||
}
|
||||
if (hasBlur) {
|
||||
vImageMatrixMultiply_ARGB8888(&effectOutBuffer, &effectInBuffer, saturationMatrix, divisor, NULL, NULL, kvImageNoFlags);
|
||||
effectImageBuffersAreSwapped = YES;
|
||||
}
|
||||
else {
|
||||
vImageMatrixMultiply_ARGB8888(&effectInBuffer, &effectOutBuffer, saturationMatrix, divisor, NULL, NULL, kvImageNoFlags);
|
||||
}
|
||||
}
|
||||
if (!effectImageBuffersAreSwapped)
|
||||
effectImage = UIGraphicsGetImageFromCurrentImageContext();
|
||||
UIGraphicsEndImageContext();
|
||||
|
||||
if (effectImageBuffersAreSwapped)
|
||||
effectImage = UIGraphicsGetImageFromCurrentImageContext();
|
||||
UIGraphicsEndImageContext();
|
||||
}
|
||||
|
||||
// Set up output context.
|
||||
UIGraphicsBeginImageContextWithOptions(self.size, NO, [UIScreen mainScreen].scale);
|
||||
CGContextRef outputContext = UIGraphicsGetCurrentContext();
|
||||
CGContextScaleCTM(outputContext, 1.0, -1.0);
|
||||
CGContextTranslateCTM(outputContext, 0, -self.size.height);
|
||||
|
||||
// Draw base image.
|
||||
CGContextDrawImage(outputContext, imageRect, self.CGImage);
|
||||
|
||||
// Draw effect image.
|
||||
if (hasBlur) {
|
||||
CGContextSaveGState(outputContext);
|
||||
if (maskImage) {
|
||||
CGContextClipToMask(outputContext, imageRect, maskImage.CGImage);
|
||||
}
|
||||
CGContextDrawImage(outputContext, imageRect, effectImage.CGImage);
|
||||
CGContextRestoreGState(outputContext);
|
||||
}
|
||||
|
||||
// Add in color tint.
|
||||
if (tintColor) {
|
||||
CGContextSaveGState(outputContext);
|
||||
CGContextSetFillColorWithColor(outputContext, tintColor.CGColor);
|
||||
CGContextFillRect(outputContext, imageRect);
|
||||
CGContextRestoreGState(outputContext);
|
||||
}
|
||||
|
||||
// Output image is ready.
|
||||
UIImage *outputImage = UIGraphicsGetImageFromCurrentImageContext();
|
||||
UIGraphicsEndImageContext();
|
||||
|
||||
return outputImage;
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
@@ -1,54 +0,0 @@
|
||||
//
|
||||
// UINavigationController+M13ProgressViewBar.h
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
/**A UINavagationController category that adds a progress view to the UINavigationBar.*/
|
||||
@interface UINavigationController (M13ProgressViewBar)
|
||||
|
||||
/**@name Actions*/
|
||||
|
||||
/**Show the progress bar.*/
|
||||
- (void)showProgress;
|
||||
/**Set the progress to display on the progress bar.
|
||||
@param progress The progress to display as a percentage from 0-1.
|
||||
@param animated Wether or not to animate the change.*/
|
||||
- (void)setProgress:(CGFloat)progress animated:(BOOL)animated;
|
||||
/**Set the string to replace the UINavigationBar's title with while showing progress. Send nil to reset the title.
|
||||
@param title The string to replace the UINavigationBar's title while showing progress.*/
|
||||
- (void)setProgressTitle:(NSString *)title;
|
||||
/**Set whether or not to show indeterminate.
|
||||
@param indeterminate wether or not the progress bar is indeterminate.*/
|
||||
- (void)setIndeterminate:(BOOL)indeterminate;
|
||||
/**Get whether or not to show indeterminate.*/
|
||||
- (BOOL)getIndeterminate;
|
||||
/**Fill the progress bar completely and remove it from display.*/
|
||||
- (void)finishProgress;
|
||||
/**Remove the progress bar from the display.*/
|
||||
- (void)cancelProgress;
|
||||
/**Wether or not the progress bar is showing.*/
|
||||
- (BOOL)isShowingProgressBar;
|
||||
/**
|
||||
The primary color of the progress bar if you do not want it to be the same as the UINavigationBar's tint color. If set to nil, the UINavigationBar's tint color will be used.
|
||||
|
||||
@param primaryColor The color to set.
|
||||
*/
|
||||
- (void)setPrimaryColor:(UIColor *)primaryColor;
|
||||
/**
|
||||
The secondary color of the progress bar, if nil, the secondary color will be the barTintColor.
|
||||
|
||||
@param secondaryColor The color to set.
|
||||
*/
|
||||
- (void)setSecondaryColor:(UIColor *)secondaryColor;
|
||||
|
||||
@end
|
||||
@@ -1,478 +0,0 @@
|
||||
//
|
||||
// UINavigationController+M13ProgressViewBar.m
|
||||
// M13ProgressView
|
||||
//
|
||||
|
||||
#import "UINavigationController+M13ProgressViewBar.h"
|
||||
#import <objc/runtime.h>
|
||||
|
||||
//Keys to set properties since one cannot define properties in a category.
|
||||
static char oldTitleKey;
|
||||
static char displayLinkKey;
|
||||
static char animationFromKey;
|
||||
static char animationToKey;
|
||||
static char animationStartTimeKey;
|
||||
static char progressKey;
|
||||
static char progressViewKey;
|
||||
static char indeterminateKey;
|
||||
static char indeterminateLayerKey;
|
||||
static char isShowingProgressKey;
|
||||
static char primaryColorKey;
|
||||
static char secondaryColorKey;
|
||||
|
||||
@implementation UINavigationController (M13ProgressViewBar)
|
||||
|
||||
#pragma mark Title
|
||||
|
||||
- (void)setProgressTitle:(NSString *)title
|
||||
{
|
||||
//Change the title on screen.
|
||||
NSString *oldTitle = [self getOldTitle];
|
||||
if (oldTitle == nil) {
|
||||
//We haven't changed the navigation bar yet. So store the original before changing it.
|
||||
[self setOldTitle:self.visibleViewController.navigationItem.title];
|
||||
}
|
||||
|
||||
if (title != nil) {
|
||||
self.visibleViewController.navigationItem.title = title;
|
||||
} else {
|
||||
self.visibleViewController.navigationItem.title = oldTitle;
|
||||
[self setOldTitle:nil];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark Progress
|
||||
|
||||
- (void)setProgress:(CGFloat)progress animated:(BOOL)animated
|
||||
{
|
||||
CADisplayLink *displayLink = [self getDisplayLink];
|
||||
if (animated == NO) {
|
||||
if (displayLink) {
|
||||
//Kill running animations
|
||||
[displayLink invalidate];
|
||||
[self setDisplayLink:nil];
|
||||
}
|
||||
[self setProgress:progress];
|
||||
} else {
|
||||
[self setAnimationStartTime:CACurrentMediaTime()];
|
||||
[self setAnimationFromValue:[self getProgress]];
|
||||
[self setAnimationToValue:progress];
|
||||
if (!displayLink) {
|
||||
//Create and setup the display link
|
||||
[displayLink invalidate];
|
||||
displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(animateProgress:)];
|
||||
[self setDisplayLink:displayLink];
|
||||
[displayLink addToRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
|
||||
} /*else {
|
||||
//Reuse the current display link
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
- (void)animateProgress:(CADisplayLink *)displayLink
|
||||
{
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
CGFloat dt = (displayLink.timestamp - [self getAnimationStartTime]) / [self getAnimationDuration];
|
||||
if (dt >= 1.0) {
|
||||
//Order is important! Otherwise concurrency will cause errors, because setProgress: will detect an animation in progress and try to stop it by itself. Once over one, set to actual progress amount. Animation is over.
|
||||
[displayLink invalidate];
|
||||
[self setDisplayLink:nil];
|
||||
[self setProgress:[self getAnimationToValue]];
|
||||
return;
|
||||
}
|
||||
|
||||
//Set progress
|
||||
[self setProgress:[self getAnimationFromValue] + dt * ([self getAnimationToValue] - [self getAnimationFromValue])];
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
- (void)finishProgress
|
||||
{
|
||||
UIView *progressView = [self getProgressView];
|
||||
|
||||
if (progressView) {
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[UIView animateWithDuration:0.1 animations:^{
|
||||
CGRect progressFrame = progressView.frame;
|
||||
progressFrame.size.width = self.navigationBar.frame.size.width;
|
||||
progressView.frame = progressFrame;
|
||||
} completion:^(BOOL finished) {
|
||||
[UIView animateWithDuration:0.5 animations:^{
|
||||
progressView.alpha = 0;
|
||||
} completion:^(BOOL finished) {
|
||||
[progressView removeFromSuperview];
|
||||
progressView.alpha = 1;
|
||||
[self setTitle:nil];
|
||||
[self setIsShowingProgressBar:NO];
|
||||
}];
|
||||
}];
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
- (void)cancelProgress
|
||||
{
|
||||
UIView *progressView = [self getProgressView];
|
||||
|
||||
if (progressView) {
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[UIView animateWithDuration:0.5 animations:^{
|
||||
progressView.alpha = 0;
|
||||
} completion:^(BOOL finished) {
|
||||
[progressView removeFromSuperview];
|
||||
progressView.alpha = 1;
|
||||
[self setTitle:nil];
|
||||
[self setIsShowingProgressBar:NO];
|
||||
}];
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark Drawing
|
||||
|
||||
- (void)showProgress
|
||||
{
|
||||
UIView *progressView = [self getProgressView];
|
||||
|
||||
[UIView animateWithDuration:.1 animations:^{
|
||||
progressView.alpha = 1;
|
||||
}];
|
||||
|
||||
[self setIsShowingProgressBar:YES];
|
||||
}
|
||||
|
||||
- (void)updateProgress
|
||||
{
|
||||
[self updateProgressWithInterfaceOrientation:[UIApplication sharedApplication].statusBarOrientation];
|
||||
}
|
||||
|
||||
- (void)updateProgressWithInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
|
||||
{
|
||||
//Create the progress view if it doesn't exist
|
||||
UIView *progressView = [self getProgressView];
|
||||
if(!progressView)
|
||||
{
|
||||
progressView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 2.5)];
|
||||
progressView.backgroundColor = self.navigationBar.tintColor;
|
||||
if ([self getPrimaryColor]) {
|
||||
progressView.backgroundColor = [self getPrimaryColor];
|
||||
}
|
||||
progressView.clipsToBounds = YES;
|
||||
[self setProgressView:progressView];
|
||||
}
|
||||
|
||||
//Calculate the frame of the navigation bar, based off the orientation.
|
||||
UIView *topView = self.topViewController.view;
|
||||
CGSize screenSize;
|
||||
if (topView) {
|
||||
screenSize = topView.bounds.size;
|
||||
} else {
|
||||
screenSize = [UIScreen mainScreen].bounds.size;
|
||||
}
|
||||
CGFloat width = 0.0;
|
||||
CGFloat height = 0.0;
|
||||
//Calculate the width of the screen
|
||||
if (UIInterfaceOrientationIsLandscape(interfaceOrientation)) {
|
||||
//Use the maximum value
|
||||
width = MAX(screenSize.width, screenSize.height);
|
||||
if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
|
||||
height = 32.0; //Hate hardcoding values, but autolayout doesn't work, and cant retreive the new height until after the animation completes.
|
||||
} else {
|
||||
height = 44.0; //Hate hardcoding values, but autolayout doesn't work, and cant retreive the new height until after the animation completes.
|
||||
}
|
||||
} else {
|
||||
//Use the minimum value
|
||||
width = MIN(screenSize.width, screenSize.height);
|
||||
height = 44.0; //Hate hardcoding values, but autolayout doesn't work, and cant retreive the new height until after the animation completes.
|
||||
}
|
||||
|
||||
//Check if the progress view is in its superview and if we are showing the bar.
|
||||
if (progressView.superview == nil && [self isShowingProgressBar]) {
|
||||
[self.navigationBar addSubview:progressView];
|
||||
}
|
||||
|
||||
//Layout
|
||||
if (![self getIndeterminate]) {
|
||||
//Calculate the width of the progress view;
|
||||
float progressWidth = width * [self getProgress];
|
||||
//Set the frame of the progress view
|
||||
progressView.frame = CGRectMake(0, height - 2.5, progressWidth, 2.5);
|
||||
} else {
|
||||
//Calculate the width of the progress view
|
||||
progressView.frame = CGRectMake(0, height - 2.5, width, 2.5);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
|
||||
{
|
||||
[self updateProgressWithInterfaceOrientation:toInterfaceOrientation];
|
||||
[self drawIndeterminateWithInterfaceOrientation:toInterfaceOrientation];
|
||||
}
|
||||
|
||||
- (void)drawIndeterminate
|
||||
{
|
||||
[self drawIndeterminateWithInterfaceOrientation:[UIApplication sharedApplication].statusBarOrientation];
|
||||
}
|
||||
|
||||
- (void)drawIndeterminateWithInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
|
||||
{
|
||||
if ([self getIndeterminate]) {
|
||||
//Get the indeterminate layer
|
||||
CALayer *indeterminateLayer = [self getIndeterminateLayer];
|
||||
if (!indeterminateLayer) {
|
||||
//Create if needed
|
||||
indeterminateLayer = [CALayer layer];
|
||||
[self setIndeterminateLayer:indeterminateLayer];
|
||||
}
|
||||
|
||||
//Calculate the frame of the navigation bar, based off the orientation.
|
||||
CGSize screenSize = [UIScreen mainScreen].bounds.size;
|
||||
CGFloat width = 0.0;
|
||||
CGFloat height = 0.0;
|
||||
//Calculate the width of the screen
|
||||
if (UIInterfaceOrientationIsLandscape(interfaceOrientation)) {
|
||||
//Use the maximum value
|
||||
width = MAX(screenSize.width, screenSize.height);
|
||||
if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
|
||||
height = 32.0; //Hate hardcoding values, but autolayout doesn't work, and cant retreive the new height until after the animation completes.
|
||||
} else {
|
||||
height = 44.0; //Hate hardcoding values, but autolayout doesn't work, and cant retreive the new height until after the animation completes.
|
||||
}
|
||||
} else {
|
||||
//Use the minimum value
|
||||
width = MIN(screenSize.width, screenSize.height);
|
||||
height = 44.0; //Hate hardcoding values, but autolayout doesn't work, and cant retreive the new height until after the animation completes.
|
||||
}
|
||||
|
||||
//Create the pattern image
|
||||
CGFloat stripeWidth = 2.5;
|
||||
//Start the image context
|
||||
UIGraphicsBeginImageContextWithOptions(CGSizeMake(stripeWidth * 4.0, stripeWidth * 4.0), NO, [UIScreen mainScreen].scale);
|
||||
//Fill the background
|
||||
if ([self getPrimaryColor]) {
|
||||
[[self getPrimaryColor] setFill];
|
||||
} else {
|
||||
[self.navigationBar.tintColor setFill];
|
||||
}
|
||||
UIBezierPath *fillPath = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, stripeWidth * 4.0, stripeWidth * 4.0)];
|
||||
[fillPath fill];
|
||||
//Draw the stripes
|
||||
//Set the stripe color
|
||||
if ([self getSecondaryColor]) {
|
||||
[[self getSecondaryColor] setFill];
|
||||
} else {
|
||||
CGFloat red;
|
||||
CGFloat green;
|
||||
CGFloat blue;
|
||||
CGFloat alpha;
|
||||
[self.navigationBar.barTintColor getRed:&red green:&green blue:&blue alpha:&alpha];
|
||||
//System set the tint color to a close to, but not non-zero value for each component.
|
||||
if (alpha > .05) {
|
||||
[self.navigationBar.barTintColor setFill];
|
||||
} else {
|
||||
[[UIColor whiteColor] setFill];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
//Create the four inital points of the fill shape
|
||||
CGPoint bottomLeft = CGPointMake(-(stripeWidth * 4.0), stripeWidth * 4.0);
|
||||
CGPoint topLeft = CGPointMake(0, 0);
|
||||
CGPoint topRight = CGPointMake(stripeWidth, 0);
|
||||
CGPoint bottomRight = CGPointMake(-(stripeWidth * 4.0) + stripeWidth, stripeWidth * 4.0);
|
||||
//Shift all four points as needed to draw all four stripes
|
||||
bottomLeft.x += i * (2 * stripeWidth);
|
||||
topLeft.x += i * (2 * stripeWidth);
|
||||
topRight.x += i * (2 * stripeWidth);
|
||||
bottomRight.x += i * (2 * stripeWidth);
|
||||
//Create the fill path
|
||||
UIBezierPath *path = [UIBezierPath bezierPath];
|
||||
[path moveToPoint:bottomLeft];
|
||||
[path addLineToPoint:topLeft];
|
||||
[path addLineToPoint:topRight];
|
||||
[path addLineToPoint:bottomRight];
|
||||
[path closePath];
|
||||
[path fill];
|
||||
}
|
||||
//Retreive the image
|
||||
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
|
||||
UIGraphicsEndImageContext();
|
||||
//Set the background of the progress layer
|
||||
indeterminateLayer.backgroundColor = [UIColor colorWithPatternImage:image].CGColor;
|
||||
|
||||
//remove any indeterminate layer animations
|
||||
[indeterminateLayer removeAllAnimations];
|
||||
//Set the indeterminate layer frame and add to the sub view
|
||||
indeterminateLayer.frame = CGRectMake(0, 0, width + (4 * 2.5), 2.5);
|
||||
UIView *progressView = [self getProgressView];
|
||||
[progressView.layer addSublayer:indeterminateLayer];
|
||||
//Add the animation
|
||||
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];
|
||||
animation.duration = .1;
|
||||
animation.repeatCount = HUGE_VALF;
|
||||
animation.removedOnCompletion = YES;
|
||||
animation.fromValue = [NSValue valueWithCGPoint:CGPointMake(- (2 * 2.5) + (width / 2.0), 2.5 / 2.0)];
|
||||
animation.toValue = [NSValue valueWithCGPoint:CGPointMake(0 + (width / 2.0), 2.5 / 2.0)];
|
||||
[indeterminateLayer addAnimation:animation forKey:@"position"];
|
||||
} else {
|
||||
CALayer *indeterminateLayer = [self getIndeterminateLayer];
|
||||
[indeterminateLayer removeAllAnimations];
|
||||
[indeterminateLayer removeFromSuperlayer];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark properties
|
||||
|
||||
- (void)setOldTitle:(NSString *)oldTitle
|
||||
{
|
||||
objc_setAssociatedObject(self, &oldTitleKey, self.visibleViewController.navigationItem.title, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
|
||||
}
|
||||
|
||||
- (NSString *)getOldTitle
|
||||
{
|
||||
return objc_getAssociatedObject(self, &oldTitleKey);
|
||||
}
|
||||
|
||||
- (void)setDisplayLink:(CADisplayLink *)displayLink
|
||||
{
|
||||
objc_setAssociatedObject(self, &displayLinkKey, displayLink, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
|
||||
}
|
||||
|
||||
- (CADisplayLink *)getDisplayLink
|
||||
{
|
||||
return objc_getAssociatedObject(self, &displayLinkKey);
|
||||
}
|
||||
|
||||
- (void)setAnimationFromValue:(CGFloat)animationFromValue
|
||||
{
|
||||
objc_setAssociatedObject(self, &animationFromKey, [NSNumber numberWithFloat:animationFromValue], OBJC_ASSOCIATION_RETAIN_NONATOMIC);
|
||||
}
|
||||
|
||||
- (CGFloat)getAnimationFromValue
|
||||
{
|
||||
NSNumber *number = objc_getAssociatedObject(self, &animationFromKey);
|
||||
return number.floatValue;
|
||||
}
|
||||
|
||||
- (void)setAnimationToValue:(CGFloat)animationToValue
|
||||
{
|
||||
objc_setAssociatedObject(self, &animationToKey, [NSNumber numberWithFloat:animationToValue], OBJC_ASSOCIATION_RETAIN_NONATOMIC);
|
||||
}
|
||||
|
||||
- (CGFloat)getAnimationToValue
|
||||
{
|
||||
NSNumber *number = objc_getAssociatedObject(self, &animationToKey);
|
||||
return number.floatValue;
|
||||
}
|
||||
|
||||
- (void)setAnimationStartTime:(NSTimeInterval)animationStartTime
|
||||
{
|
||||
objc_setAssociatedObject(self, &animationStartTimeKey, [NSNumber numberWithFloat:animationStartTime], OBJC_ASSOCIATION_RETAIN_NONATOMIC);
|
||||
}
|
||||
|
||||
- (NSTimeInterval)getAnimationStartTime
|
||||
{
|
||||
NSNumber *number = objc_getAssociatedObject(self, &animationStartTimeKey);
|
||||
return number.floatValue;
|
||||
}
|
||||
|
||||
- (void)setProgress:(CGFloat)progress
|
||||
{
|
||||
if (progress > 1.0) {
|
||||
progress = 1.0;
|
||||
} else if (progress < 0.0) {
|
||||
progress = 0.0;
|
||||
}
|
||||
objc_setAssociatedObject(self, &progressKey, [NSNumber numberWithFloat:progress], OBJC_ASSOCIATION_RETAIN_NONATOMIC);
|
||||
//Draw the update
|
||||
if ([NSThread isMainThread]) {
|
||||
[self updateProgress];
|
||||
} else {
|
||||
//Sometimes UINavigationController runs in a background thread. And drawing is not thread safe.
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[self updateProgress];
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setIsShowingProgressBar:(BOOL)isShowingProgressBar
|
||||
{
|
||||
objc_setAssociatedObject(self, &isShowingProgressKey, [NSNumber numberWithBool:isShowingProgressBar], OBJC_ASSOCIATION_RETAIN_NONATOMIC);
|
||||
}
|
||||
|
||||
- (CGFloat)getProgress
|
||||
{
|
||||
NSNumber *number = objc_getAssociatedObject(self, &progressKey);
|
||||
return number.floatValue;
|
||||
}
|
||||
|
||||
- (CGFloat)getAnimationDuration
|
||||
{
|
||||
return .3;
|
||||
}
|
||||
|
||||
- (void)setProgressView:(UIView *)view
|
||||
{
|
||||
objc_setAssociatedObject(self, &progressViewKey, view, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
|
||||
}
|
||||
|
||||
- (UIView *)getProgressView
|
||||
{
|
||||
return objc_getAssociatedObject(self, &progressViewKey);
|
||||
}
|
||||
|
||||
- (void)setIndeterminate:(BOOL)indeterminate
|
||||
{
|
||||
objc_setAssociatedObject(self, &indeterminateKey, [NSNumber numberWithBool:indeterminate], OBJC_ASSOCIATION_RETAIN_NONATOMIC);
|
||||
[self updateProgress];
|
||||
[self drawIndeterminate];
|
||||
}
|
||||
|
||||
- (BOOL)getIndeterminate
|
||||
{
|
||||
NSNumber *number = objc_getAssociatedObject(self, &indeterminateKey);
|
||||
return number.boolValue;
|
||||
}
|
||||
|
||||
- (void)setIndeterminateLayer:(CALayer *)indeterminateLayer
|
||||
{
|
||||
objc_setAssociatedObject(self, &indeterminateLayerKey, indeterminateLayer, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
|
||||
}
|
||||
|
||||
- (CALayer *)getIndeterminateLayer
|
||||
{
|
||||
return objc_getAssociatedObject(self, &indeterminateLayerKey);
|
||||
}
|
||||
|
||||
- (BOOL)isShowingProgressBar
|
||||
{
|
||||
return [objc_getAssociatedObject(self, &isShowingProgressKey) boolValue];
|
||||
}
|
||||
|
||||
- (void)setPrimaryColor:(UIColor *)primaryColor
|
||||
{
|
||||
objc_setAssociatedObject(self, &primaryColorKey, primaryColor, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
|
||||
[self getProgressView].backgroundColor = primaryColor;
|
||||
[self setIndeterminate:[self getIndeterminate]];
|
||||
}
|
||||
|
||||
- (UIColor *)getPrimaryColor
|
||||
{
|
||||
return objc_getAssociatedObject(self, &primaryColorKey);
|
||||
}
|
||||
|
||||
- (void)setSecondaryColor:(UIColor *)secondaryColor
|
||||
{
|
||||
objc_setAssociatedObject(self, &secondaryColorKey, secondaryColor, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
|
||||
[self setIndeterminate:[self getIndeterminate]];
|
||||
}
|
||||
|
||||
- (UIColor *)getSecondaryColor
|
||||
{
|
||||
return objc_getAssociatedObject(self, &secondaryColorKey);
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,266 @@
|
||||
//
|
||||
// M13BorderedProgressBar.swift
|
||||
// M13ProgressSuite
|
||||
//
|
||||
// Created by Brandon McQuilkin on 9/13/15.
|
||||
// Copyright © 2015 Brandon McQuilkin. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
/**
|
||||
A wrapper around M13ProgressBar that adds a border around the bar.
|
||||
*/
|
||||
@IBDesignable
|
||||
public class M13BorderedProgressBar: M13ProgressView {
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Appearance
|
||||
//-------------------------------
|
||||
|
||||
/**
|
||||
The corner radius of the progress bar.
|
||||
*/
|
||||
@IBInspectable public var cornerRadius: CGFloat = CGFloat.max {
|
||||
didSet {
|
||||
progressBar.cornerRadius = cornerRadius
|
||||
setNeedsLayout()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
The width of the border around the progress bar.
|
||||
*/
|
||||
@IBInspectable public var borderWidth: CGFloat = 1.0 {
|
||||
didSet {
|
||||
borderView.layer.borderWidth = borderWidth
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
The spacing between the border and the progress bar.
|
||||
*/
|
||||
@IBInspectable public var borderPadding: CGFloat = 1.0
|
||||
|
||||
override public var secondaryColor: UIColor {
|
||||
didSet {
|
||||
progressBar.secondaryColor = secondaryColor
|
||||
}
|
||||
}
|
||||
|
||||
override public var successColor: UIColor {
|
||||
didSet {
|
||||
progressBar.successColor = successColor
|
||||
if state == M13ProgressViewState.Success {
|
||||
borderView.layer.borderColor = successColor.CGColor
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override public var failureColor: UIColor {
|
||||
didSet {
|
||||
progressBar.failureColor = failureColor
|
||||
if state == M13ProgressViewState.Failure {
|
||||
borderView.layer.borderColor = failureColor.CGColor
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Properties
|
||||
//-------------------------------
|
||||
|
||||
/**
|
||||
The progress bar that displays the progress.
|
||||
*/
|
||||
public var progressBar: M13ProgressBar = M13ProgressBar() {
|
||||
willSet(newValue) {
|
||||
// Remove the current progress bar from the view.
|
||||
progressBar.removeFromSuperview()
|
||||
}
|
||||
didSet(oldValue) {
|
||||
// Set the current parameters
|
||||
progressBar.cornerRadius = cornerRadius
|
||||
progressBar.secondaryColor = secondaryColor
|
||||
progressBar.successColor = successColor
|
||||
progressBar.failureColor = failureColor
|
||||
progressBar.progressDirection = progressDirection
|
||||
progressBar.indeterminate = indeterminate
|
||||
// Add the new progress bar to the view.
|
||||
addSubview(progressBar)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
The view that displays the border layer.
|
||||
*/
|
||||
private var borderView: UIView = UIView()
|
||||
|
||||
/**
|
||||
The direction the progress bar travels in as the progress nears completion.
|
||||
*/
|
||||
@IBInspectable public var progressDirection: M13ProgressBarProgressDirection = M13ProgressBarProgressDirection.LeadingToTrailing {
|
||||
didSet {
|
||||
progressBar.progressDirection = progressDirection
|
||||
}
|
||||
}
|
||||
|
||||
override public var indeterminate: Bool {
|
||||
didSet {
|
||||
progressBar.indeterminate = indeterminate
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Initalization
|
||||
//-------------------------------
|
||||
|
||||
override public init() {
|
||||
super.init()
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
required public init?(coder aDecoder: NSCoder) {
|
||||
if aDecoder.containsValueForKey("borderWidth") {
|
||||
borderWidth = CGFloat(aDecoder.decodeDoubleForKey("borderWidth"))
|
||||
}
|
||||
if aDecoder.containsValueForKey("borderPadding") {
|
||||
borderWidth = CGFloat(aDecoder.decodeDoubleForKey("borderPadding"))
|
||||
}
|
||||
if aDecoder.containsValueForKey("progressBar") {
|
||||
progressBar = aDecoder.decodeObjectOfClass(M13ProgressBar.self, forKey: "progressBar")!
|
||||
}
|
||||
|
||||
super.init(coder: aDecoder)
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
override public init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
private func sharedSetup() {
|
||||
// Set the defaults.
|
||||
//self.clipsToBounds = true
|
||||
|
||||
// Set border
|
||||
borderView.clipsToBounds = true
|
||||
borderView.layer.borderColor = tintColor.CGColor
|
||||
borderView.layer.borderWidth = borderWidth
|
||||
borderView.backgroundColor = UIColor.clearColor()
|
||||
|
||||
// Set background
|
||||
secondaryColor = UIColor.clearColor()
|
||||
|
||||
// Add views
|
||||
addSubview(progressBar)
|
||||
addSubview(borderView)
|
||||
|
||||
// Set the progress and indeterminate animations.
|
||||
weak var weakSelf: M13BorderedProgressBar? = self;
|
||||
progressUpdate = {() -> Void in
|
||||
if let weakSelf = weakSelf {
|
||||
weakSelf.progressBar.setProgress(weakSelf.progress, animated: false)
|
||||
}
|
||||
}
|
||||
|
||||
indeterminateUpdate = {(frameDuration: CFTimeInterval) -> Void in
|
||||
weakSelf?.progressBar.indeterminateUpdate?(frameDuration: frameDuration)
|
||||
}
|
||||
|
||||
setNeedsLayout()
|
||||
}
|
||||
|
||||
public override func encodeWithCoder(aCoder: NSCoder) {
|
||||
aCoder.encodeDouble(Double(borderWidth), forKey: "borderWidth")
|
||||
aCoder.encodeDouble(Double(borderPadding), forKey: "borderPadding")
|
||||
aCoder.encodeObject(progressBar, forKey: "progressBar")
|
||||
}
|
||||
|
||||
public override func prepareForInterfaceBuilder() {
|
||||
sharedSetup()
|
||||
super.prepareForInterfaceBuilder()
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Layout
|
||||
//-------------------------------
|
||||
|
||||
public override func intrinsicContentSize() -> CGSize {
|
||||
return CGSizeMake((borderWidth * 2) + (borderPadding * 2), (borderWidth * 2) + (borderPadding * 2))
|
||||
}
|
||||
|
||||
public override func layoutSubviews() {
|
||||
super.layoutSubviews()
|
||||
// Update the corner radius
|
||||
var appropiateCornerRadius: CGFloat = frame.size.width < frame.size.height ? frame.size.width / 2.0 : frame.size.height / 2.0
|
||||
appropiateCornerRadius = appropiateCornerRadius > cornerRadius ? cornerRadius : appropiateCornerRadius
|
||||
borderView.layer.cornerRadius = appropiateCornerRadius
|
||||
// Layout
|
||||
borderView.frame = CGRectMake(0.0, 0.0, frame.size.width, frame.size.height)
|
||||
progressBar.frame = CGRectMake(borderWidth + borderPadding, borderWidth + borderPadding, frame.size.width - (2 * (borderWidth + borderPadding)), frame.size.height - (2 * (borderWidth + borderPadding)))
|
||||
// Update progress
|
||||
progressUpdate?()
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Actions
|
||||
//-------------------------------
|
||||
|
||||
public override func setState(state: M13ProgressViewState, animated: Bool) {
|
||||
super.setState(state, animated: animated)
|
||||
|
||||
if !animated {
|
||||
switch state {
|
||||
case .Normal:
|
||||
borderView.layer.borderColor = tintColor.CGColor
|
||||
progressBar.setState(state, animated: false)
|
||||
break
|
||||
case .Success:
|
||||
borderView.layer.borderColor = successColor.CGColor
|
||||
progressBar.setState(state, animated: false)
|
||||
break
|
||||
case .Failure:
|
||||
borderView.layer.borderColor = failureColor.CGColor
|
||||
progressBar.setState(state, animated: false)
|
||||
break
|
||||
}
|
||||
} else {
|
||||
let colorAnimation: CABasicAnimation = CABasicAnimation(keyPath: "borderColor")
|
||||
colorAnimation.fromValue = borderView.layer.borderColor!
|
||||
colorAnimation.fillMode = kCAFillModeForwards
|
||||
colorAnimation.removedOnCompletion = false
|
||||
colorAnimation.duration = animationDuration
|
||||
|
||||
var toColor: UIColor = tintColor
|
||||
switch state {
|
||||
case .Normal:
|
||||
toColor = tintColor
|
||||
break
|
||||
case .Success:
|
||||
toColor = successColor
|
||||
break
|
||||
case .Failure:
|
||||
toColor = failureColor
|
||||
break
|
||||
}
|
||||
|
||||
colorAnimation.toValue = toColor.CGColor
|
||||
borderView.layer.addAnimation(colorAnimation, forKey: "borderColor")
|
||||
progressBar.setState(state, animated: true)
|
||||
borderView.layer.borderColor = toColor.CGColor
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Other
|
||||
//-------------------------------
|
||||
|
||||
public override func tintColorDidChange() {
|
||||
super.tintColorDidChange()
|
||||
borderView.layer.borderColor = tintColor.CGColor
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,376 @@
|
||||
//
|
||||
// M13ProgressBar.swift
|
||||
// M13ProgressSuite
|
||||
//
|
||||
/*
|
||||
Copyright (c) 2015 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
import UIKit
|
||||
|
||||
/**
|
||||
The possible directions a progress bar can travel in.
|
||||
|
||||
- LeadingToTrailing: The progress bar will travel from leading to trailing as the progress nears completion.
|
||||
- TrailingToLeading: The progress bar will travel from trailing to leading as the progress nears completion.
|
||||
- BottomToTop: The progress bar will travel from the bottom to the top as the progress nears completion.
|
||||
- TopToBottom: The progress bar will travel from the top to the bottom as the progress nears completion.
|
||||
*/
|
||||
public enum M13ProgressBarProgressDirection: Int, RawRepresentable {
|
||||
/// The progress bar will travel from leading to trailing as the progress nears completion.
|
||||
case LeadingToTrailing
|
||||
/// The progress bar will travel from trailing to leading as the progress nears completion.
|
||||
case TrailingToLeading
|
||||
/// The progress bar will travel from the bottom to the top as the progress nears completion.
|
||||
case BottomToTop
|
||||
/// The progress bar will travel from the top to the bottom as the progress nears completion.
|
||||
case TopToBottom
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
A simple progress bar similar to UIProgressBar, but with an indeterminate state.
|
||||
*/
|
||||
@IBDesignable
|
||||
public class M13ProgressBar: M13ProgressView {
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Appearance
|
||||
//-------------------------------
|
||||
|
||||
/**
|
||||
The corner radius of the progress bar.
|
||||
*/
|
||||
@IBInspectable public var cornerRadius: CGFloat = CGFloat.max {
|
||||
didSet {
|
||||
var appropiateCornerRadius: CGFloat = frame.size.width < frame.size.height ? frame.size.width / 2.0 : frame.size.height / 2.0
|
||||
appropiateCornerRadius = appropiateCornerRadius > cornerRadius ? cornerRadius : appropiateCornerRadius
|
||||
layer.cornerRadius = appropiateCornerRadius
|
||||
progressLayer.cornerRadius = appropiateCornerRadius
|
||||
indeterminateLayer.cornerRadius = appropiateCornerRadius
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
The secondary color of the progress view.
|
||||
*/
|
||||
override public var secondaryColor: UIColor {
|
||||
didSet {
|
||||
layer.backgroundColor = secondaryColor.CGColor
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
The primary color when the progress view is in the success state.
|
||||
*/
|
||||
override public var successColor: UIColor {
|
||||
didSet {
|
||||
if state == M13ProgressViewState.Success {
|
||||
progressLayer.backgroundColor = successColor.CGColor
|
||||
indeterminateLayer.backgroundColor = successColor.CGColor
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
The primary color when the progress view is in the failure state.
|
||||
*/
|
||||
override public var failureColor: UIColor {
|
||||
didSet {
|
||||
if state == M13ProgressViewState.Failure {
|
||||
progressLayer.backgroundColor = failureColor.CGColor
|
||||
indeterminateLayer.backgroundColor = failureColor.CGColor
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Properties
|
||||
//-------------------------------
|
||||
|
||||
/**
|
||||
The direction the progress bar travels in as the progress nears completion.
|
||||
*/
|
||||
@IBInspectable public var progressDirection: M13ProgressBarProgressDirection = M13ProgressBarProgressDirection.LeadingToTrailing {
|
||||
didSet {
|
||||
progressUpdate?()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
The layer that makes up the progress bar.
|
||||
*/
|
||||
internal var progressLayer: CALayer = CALayer()
|
||||
|
||||
/**
|
||||
The layer that makes up the indeterminate progress bar.
|
||||
*/
|
||||
internal var indeterminateLayer: CAShapeLayer = CAShapeLayer()
|
||||
|
||||
override public var indeterminate: Bool {
|
||||
didSet {
|
||||
// Add the indeterminate layer.
|
||||
if indeterminate && indeterminateLayer.superlayer == nil {
|
||||
progressLayer.removeFromSuperlayer()
|
||||
layer.addSublayer(indeterminateLayer)
|
||||
}
|
||||
|
||||
// Add the progress layer
|
||||
if !indeterminate && progressLayer.superlayer == nil {
|
||||
indeterminateLayer.removeFromSuperlayer()
|
||||
layer.addSublayer(progressLayer)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Initalization
|
||||
//-------------------------------
|
||||
|
||||
override public init() {
|
||||
super.init()
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
required public init?(coder aDecoder: NSCoder) {
|
||||
if aDecoder.containsValueForKey("cornerRadius") {
|
||||
cornerRadius = CGFloat(aDecoder.decodeDoubleForKey("cornerRadius"))
|
||||
}
|
||||
if aDecoder.containsValueForKey("progressDirection") {
|
||||
if let direction = M13ProgressBarProgressDirection(rawValue: aDecoder.decodeIntegerForKey("progressDirection")) {
|
||||
progressDirection = direction
|
||||
}
|
||||
}
|
||||
|
||||
super.init(coder: aDecoder)
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
override public init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
private func sharedSetup() {
|
||||
// Set the defaults.
|
||||
self.clipsToBounds = true
|
||||
|
||||
layer.cornerRadius = cornerRadius
|
||||
layer.backgroundColor = secondaryColor.CGColor
|
||||
|
||||
progressLayer.cornerRadius = cornerRadius
|
||||
indeterminateLayer.cornerRadius = cornerRadius
|
||||
progressLayer.backgroundColor = tintColor.CGColor
|
||||
indeterminateLayer.backgroundColor = tintColor.CGColor
|
||||
|
||||
// Disable default animations
|
||||
progressLayer.actions = [
|
||||
"frame": NSNull(),
|
||||
"anchorPoint": NSNull(),
|
||||
"bounds": NSNull(),
|
||||
"position": NSNull(),
|
||||
"cornerRadius": NSNull()
|
||||
]
|
||||
indeterminateLayer.actions = [
|
||||
"frame": NSNull(),
|
||||
"anchorPoint": NSNull(),
|
||||
"bounds": NSNull(),
|
||||
"position": NSNull(),
|
||||
"cornerRadius": NSNull()
|
||||
]
|
||||
|
||||
|
||||
// Add the layers
|
||||
self.layer.addSublayer(progressLayer)
|
||||
|
||||
// Set the progress and indeterminate animations.
|
||||
weak var weakSelf: M13ProgressBar? = self;
|
||||
progressUpdate = {() -> Void in
|
||||
|
||||
if let weakSelf = weakSelf {
|
||||
// Get the frame of the progress layer
|
||||
var progressFrame: CGRect = CGRectZero
|
||||
switch weakSelf.progressDirection {
|
||||
case .LeadingToTrailing:
|
||||
let xPosition = UIView.userInterfaceLayoutDirectionForSemanticContentAttribute(UISemanticContentAttribute.Spatial) == UIUserInterfaceLayoutDirection.LeftToRight ? 0.0 : weakSelf.frame.size.width - (weakSelf.frame.size.width * weakSelf.progress)
|
||||
progressFrame = CGRectMake(xPosition, 0.0, weakSelf.frame.size.width * weakSelf.progress, weakSelf.frame.size.height)
|
||||
break
|
||||
case .TrailingToLeading:
|
||||
let xPosition = UIView.userInterfaceLayoutDirectionForSemanticContentAttribute(UISemanticContentAttribute.Spatial) == UIUserInterfaceLayoutDirection.RightToLeft ? 0.0 : weakSelf.frame.size.width - (weakSelf.frame.size.width * weakSelf.progress)
|
||||
progressFrame = CGRectMake(xPosition, 0.0, weakSelf.frame.size.width * weakSelf.progress, weakSelf.frame.size.height)
|
||||
break
|
||||
case .BottomToTop:
|
||||
progressFrame = CGRectMake(0.0, weakSelf.frame.size.height - (weakSelf.frame.size.height * weakSelf.progress), weakSelf.frame.size.width, weakSelf.frame.size.height * weakSelf.progress)
|
||||
break
|
||||
case .TopToBottom:
|
||||
progressFrame = CGRectMake(0.0, 0.0, weakSelf.frame.size.width, weakSelf.frame.size.height * weakSelf.progress)
|
||||
break
|
||||
}
|
||||
weakSelf.progressLayer.frame = progressFrame
|
||||
}
|
||||
}
|
||||
|
||||
indeterminateUpdate = {(frameDuration: CFTimeInterval) -> Void in
|
||||
|
||||
if let weakSelf = weakSelf {
|
||||
|
||||
let horizontallyTraveling: Bool = weakSelf.progressDirection == M13ProgressBarProgressDirection.LeadingToTrailing || weakSelf.progressDirection == M13ProgressBarProgressDirection.TrailingToLeading
|
||||
|
||||
let barPosition: CGFloat = horizontallyTraveling ? weakSelf.indeterminateLayer.frame.origin.x : weakSelf.indeterminateLayer.frame.origin.y
|
||||
let barLength: CGFloat = horizontallyTraveling ? weakSelf.frame.size.width * 0.2 : weakSelf.frame.size.height * 0.2
|
||||
|
||||
let totalTravelDistance: CGFloat = horizontallyTraveling ? weakSelf.frame.size.width + (2.0 * barLength) : weakSelf.frame.size.height + (2.0 * barLength)
|
||||
let totalAnimationFrames: CGFloat = CGFloat(weakSelf.indeterminateAnimationDuration) / CGFloat(frameDuration)
|
||||
let travelDelta: CGFloat = totalTravelDistance / totalAnimationFrames
|
||||
|
||||
// Set the new frame of the bar: either move it by the travel delta, or move it back to the begining.
|
||||
switch weakSelf.progressDirection {
|
||||
case .LeadingToTrailing:
|
||||
let leftToRight: Bool = UIView.userInterfaceLayoutDirectionForSemanticContentAttribute(UISemanticContentAttribute.Spatial) == UIUserInterfaceLayoutDirection.LeftToRight
|
||||
if leftToRight {
|
||||
if barPosition >= weakSelf.frame.size.width {
|
||||
weakSelf.indeterminateLayer.frame = CGRectMake(-barLength, 0.0, barLength, weakSelf.frame.size.height)
|
||||
} else {
|
||||
weakSelf.indeterminateLayer.frame = CGRectMake(weakSelf.indeterminateLayer.frame.origin.x + travelDelta, 0.0, barLength, weakSelf.frame.size.height)
|
||||
}
|
||||
} else {
|
||||
if barPosition <= -barLength {
|
||||
weakSelf.indeterminateLayer.frame = CGRectMake(weakSelf.frame.size.width, 0.0, barLength, weakSelf.frame.size.height)
|
||||
} else {
|
||||
weakSelf.indeterminateLayer.frame = CGRectMake(weakSelf.indeterminateLayer.frame.origin.x - travelDelta, 0.0, barLength, weakSelf.frame.size.height)
|
||||
}
|
||||
}
|
||||
break
|
||||
case .TrailingToLeading:
|
||||
var rightToLeft: Bool = UIView.userInterfaceLayoutDirectionForSemanticContentAttribute(UISemanticContentAttribute.Spatial) == UIUserInterfaceLayoutDirection.RightToLeft
|
||||
if rightToLeft {
|
||||
if barPosition <= -barLength {
|
||||
weakSelf.indeterminateLayer.frame = CGRectMake(weakSelf.frame.size.width, 0.0, barLength, weakSelf.frame.size.height)
|
||||
} else {
|
||||
weakSelf.indeterminateLayer.frame = CGRectMake(weakSelf.indeterminateLayer.frame.origin.x - travelDelta, 0.0, barLength, weakSelf.frame.size.height)
|
||||
}
|
||||
} else {
|
||||
if barPosition >= weakSelf.frame.size.width {
|
||||
weakSelf.indeterminateLayer.frame = CGRectMake(-barLength, 0.0, barLength, weakSelf.frame.size.height)
|
||||
} else {
|
||||
weakSelf.indeterminateLayer.frame = CGRectMake(weakSelf.indeterminateLayer.frame.origin.x + travelDelta, 0.0, barLength, weakSelf.frame.size.height)
|
||||
}
|
||||
}
|
||||
break
|
||||
case .BottomToTop:
|
||||
if barPosition <= -barLength {
|
||||
weakSelf.indeterminateLayer.frame = CGRectMake(0.0, weakSelf.frame.size.height, weakSelf.frame.size.width, barLength)
|
||||
} else {
|
||||
weakSelf.indeterminateLayer.frame = CGRectMake(0.0, weakSelf.indeterminateLayer.frame.origin.y - travelDelta, weakSelf.frame.size.width, barLength)
|
||||
}
|
||||
break
|
||||
case .TopToBottom:
|
||||
if barPosition >= weakSelf.frame.size.height {
|
||||
weakSelf.indeterminateLayer.frame = CGRectMake(0.0, -barLength, weakSelf.frame.size.width, barLength)
|
||||
} else {
|
||||
weakSelf.indeterminateLayer.frame = CGRectMake(0.0, weakSelf.indeterminateLayer.frame.origin.y + travelDelta, weakSelf.frame.size.width, barLength)
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override func encodeWithCoder(aCoder: NSCoder) {
|
||||
aCoder.encodeDouble(Double(cornerRadius), forKey: "cornerRadius")
|
||||
aCoder.encodeInteger(progressDirection.rawValue, forKey: "progressDirection")
|
||||
}
|
||||
|
||||
public override func prepareForInterfaceBuilder() {
|
||||
sharedSetup()
|
||||
super.prepareForInterfaceBuilder()
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Actions
|
||||
//-------------------------------
|
||||
|
||||
public override func setState(state: M13ProgressViewState, animated: Bool) {
|
||||
super.setState(state, animated: animated)
|
||||
|
||||
if !animated {
|
||||
switch state {
|
||||
case .Normal:
|
||||
progressLayer.backgroundColor = tintColor.CGColor
|
||||
indeterminateLayer.backgroundColor = tintColor.CGColor
|
||||
break
|
||||
case .Success:
|
||||
progressLayer.backgroundColor = successColor.CGColor
|
||||
indeterminateLayer.backgroundColor = successColor.CGColor
|
||||
break
|
||||
case .Failure:
|
||||
progressLayer.backgroundColor = failureColor.CGColor
|
||||
indeterminateLayer.backgroundColor = failureColor.CGColor
|
||||
break
|
||||
}
|
||||
} else {
|
||||
let colorAnimation: CABasicAnimation = CABasicAnimation(keyPath: "backgroundColor")
|
||||
colorAnimation.fromValue = progressLayer.backgroundColor!
|
||||
colorAnimation.fillMode = kCAFillModeForwards
|
||||
colorAnimation.removedOnCompletion = false
|
||||
colorAnimation.duration = animationDuration
|
||||
|
||||
var toColor: UIColor = tintColor
|
||||
switch state {
|
||||
case .Normal:
|
||||
toColor = tintColor
|
||||
break
|
||||
case .Success:
|
||||
toColor = successColor
|
||||
break
|
||||
case .Failure:
|
||||
toColor = failureColor
|
||||
break
|
||||
}
|
||||
|
||||
colorAnimation.toValue = toColor.CGColor
|
||||
progressLayer.addAnimation(colorAnimation, forKey: "backgroundColor")
|
||||
indeterminateLayer.addAnimation(colorAnimation, forKey: "backgroundColor")
|
||||
progressLayer.backgroundColor = toColor.CGColor
|
||||
indeterminateLayer.backgroundColor = toColor.CGColor
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Layout
|
||||
//-------------------------------
|
||||
|
||||
public override func intrinsicContentSize() -> CGSize {
|
||||
return CGSizeMake(UIViewNoIntrinsicMetric, UIViewNoIntrinsicMetric)
|
||||
}
|
||||
|
||||
public override func layoutSubviews() {
|
||||
super.layoutSubviews()
|
||||
//Update the corner radius
|
||||
var appropiateCornerRadius: CGFloat = frame.size.width < frame.size.height ? frame.size.width / 2.0 : frame.size.height / 2.0
|
||||
appropiateCornerRadius = appropiateCornerRadius > cornerRadius ? cornerRadius : appropiateCornerRadius
|
||||
layer.cornerRadius = appropiateCornerRadius
|
||||
progressLayer.cornerRadius = appropiateCornerRadius
|
||||
indeterminateLayer.cornerRadius = appropiateCornerRadius
|
||||
//Update progress frame
|
||||
progressUpdate?()
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Other
|
||||
//-------------------------------
|
||||
|
||||
public override func tintColorDidChange() {
|
||||
super.tintColorDidChange()
|
||||
progressLayer.backgroundColor = tintColor.CGColor
|
||||
indeterminateLayer.backgroundColor = tintColor.CGColor
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,379 @@
|
||||
//
|
||||
// M13ProgressCircular.swift
|
||||
// M13ProgressSuite
|
||||
//
|
||||
/*
|
||||
Copyright (c) 2015 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
import UIKit
|
||||
|
||||
/**
|
||||
The possible directions a circular progress indicator can travel in.
|
||||
|
||||
- Clockwise: The progress ring will travel clockwise as the progress nears completion.
|
||||
- CounterClockwise: The progress ring will travel counter-clockwise as the progress nears completion.
|
||||
*/
|
||||
public enum M13ProgressCircularProgressDirection: Int, RawRepresentable {
|
||||
/// The progress ring will travel clockwise as the progress nears completion.
|
||||
case Clockwise
|
||||
/// The progress ring will travel counter-clockwise as the progress nears completion.
|
||||
case CounterClockwise
|
||||
}
|
||||
|
||||
/**
|
||||
Base class for circular progress views.
|
||||
Ring and Pie progress views are derived from this class. Do not instantiate directly.
|
||||
*/
|
||||
@IBDesignable
|
||||
public class M13ProgressCircular: M13ProgressView {
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Properties
|
||||
//-------------------------------
|
||||
|
||||
/**
|
||||
The direction the progress bar travels in as the progress nears completion.
|
||||
*/
|
||||
@IBInspectable public var progressDirection: M13ProgressCircularProgressDirection = .Clockwise {
|
||||
didSet {
|
||||
progressUpdate?()
|
||||
}
|
||||
}
|
||||
|
||||
@IBInspectable public var backgroundRingWidth :Int = 0 {
|
||||
didSet {
|
||||
setNeedsLayout()
|
||||
progressUpdate?()
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Property Overrides
|
||||
//-------------------------------
|
||||
|
||||
/**
|
||||
The secondary color of the progress view.
|
||||
*/
|
||||
override public var secondaryColor: UIColor {
|
||||
didSet {
|
||||
indeterminateLayer.strokeColor = secondaryColor.CGColor
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
The primary color when the progress view is in the success state.
|
||||
*/
|
||||
override public var successColor: UIColor {
|
||||
didSet {
|
||||
if state == .Success {
|
||||
iconLayer.fillColor = successColor.CGColor
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
The primary color when the progress view is in the failure state.
|
||||
*/
|
||||
override public var failureColor: UIColor {
|
||||
didSet {
|
||||
if state == .Failure {
|
||||
iconLayer.fillColor = failureColor.CGColor
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Layers
|
||||
//-------------------------------
|
||||
|
||||
/**
|
||||
The layer that makes up the progress ring.
|
||||
*/
|
||||
internal var progressLayer: CAShapeLayer = CAShapeLayer()
|
||||
|
||||
/**
|
||||
The layer that makes up the indeterminate ring, and the background for the progress ring.
|
||||
*/
|
||||
internal var indeterminateLayer: CAShapeLayer = CAShapeLayer()
|
||||
|
||||
/**
|
||||
The layer that is used to render icons for success or failure.
|
||||
*/
|
||||
internal var iconLayer: CAShapeLayer = CAShapeLayer()
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Protected Variables
|
||||
//-------------------------------
|
||||
|
||||
/** The starting angle for drawing the indeterminate animation ring. */
|
||||
internal var indeterminateAnimationAngle :CGFloat = 0
|
||||
/** Ring widths after validation and bounds adjustments */
|
||||
internal var adjustedBackgroundRingWidth :CGFloat = 0
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Initalization
|
||||
//-------------------------------
|
||||
|
||||
override public init() {
|
||||
super.init()
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
required public init?(coder aDecoder: NSCoder) {
|
||||
if aDecoder.containsValueForKey("progressDirection") {
|
||||
if let direction = M13ProgressCircularProgressDirection(rawValue: aDecoder.decodeIntegerForKey("progressDirection")) {
|
||||
progressDirection = direction
|
||||
}
|
||||
}
|
||||
if aDecoder.containsValueForKey("backgroundRingWidth") {
|
||||
backgroundRingWidth = aDecoder.decodeIntegerForKey("backgroundRingWidth")
|
||||
}
|
||||
|
||||
super.init(coder: aDecoder)
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
override public init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
internal func sharedSetup() {
|
||||
// Set the defaults.
|
||||
self.clipsToBounds = false
|
||||
layer.backgroundColor = UIColor.clearColor().CGColor
|
||||
|
||||
// Set up the indeterminate layer
|
||||
indeterminateLayer = CAShapeLayer()
|
||||
indeterminateLayer.backgroundColor = UIColor.clearColor().CGColor
|
||||
indeterminateLayer.strokeColor = secondaryColor.CGColor
|
||||
indeterminateLayer.fillColor = nil
|
||||
indeterminateLayer.lineCap = kCALineCapRound
|
||||
|
||||
// Set up the progress layer
|
||||
progressLayer = CAShapeLayer()
|
||||
progressLayer.backgroundColor = UIColor.clearColor().CGColor
|
||||
progressLayer.strokeColor = nil
|
||||
progressLayer.fillColor = tintColor.CGColor
|
||||
progressLayer.lineCap = kCALineCapButt
|
||||
|
||||
adjustBackgroundRingWidth()
|
||||
|
||||
// Set up the icon layer
|
||||
iconLayer = CAShapeLayer()
|
||||
iconLayer.backgroundColor = UIColor.clearColor().CGColor
|
||||
iconLayer.strokeColor = nil
|
||||
iconLayer.fillColor = nil
|
||||
iconLayer.lineCap = kCALineCapButt
|
||||
|
||||
// Disable default animations
|
||||
progressLayer.actions = [
|
||||
"frame": NSNull(),
|
||||
"anchorPoint": NSNull(),
|
||||
"bounds": NSNull(),
|
||||
"position": NSNull(),
|
||||
]
|
||||
indeterminateLayer.actions = [
|
||||
"frame": NSNull(),
|
||||
"anchorPoint": NSNull(),
|
||||
"bounds": NSNull(),
|
||||
"position": NSNull(),
|
||||
]
|
||||
iconLayer.actions = [
|
||||
"frame": NSNull(),
|
||||
"anchorPoint": NSNull(),
|
||||
"bounds": NSNull(),
|
||||
"position": NSNull(),
|
||||
]
|
||||
|
||||
// Add the layers
|
||||
layer.addSublayer(indeterminateLayer)
|
||||
layer.addSublayer(progressLayer)
|
||||
layer.addSublayer(iconLayer)
|
||||
|
||||
// Be sure to implement progressUpdate() and indeterminateUpdate in child classes.
|
||||
}
|
||||
|
||||
public override func encodeWithCoder(aCoder: NSCoder) {
|
||||
aCoder.encodeInteger(progressDirection.rawValue, forKey: "progressDirection")
|
||||
aCoder.encodeInteger(backgroundRingWidth, forKey: "backgroundRingWidth")
|
||||
super.encodeWithCoder(aCoder)
|
||||
}
|
||||
|
||||
public override func prepareForInterfaceBuilder() {
|
||||
sharedSetup()
|
||||
super.prepareForInterfaceBuilder()
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Actions
|
||||
//-------------------------------
|
||||
|
||||
public override func setState(state: M13ProgressViewState, animated: Bool) {
|
||||
super.setState(state, animated: animated)
|
||||
|
||||
switch state {
|
||||
case .Normal:
|
||||
hideIcon()
|
||||
break
|
||||
case .Success:
|
||||
drawSuccess()
|
||||
break
|
||||
case .Failure:
|
||||
drawFailure()
|
||||
break
|
||||
}
|
||||
|
||||
setNeedsLayout()
|
||||
progressUpdate?()
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Layout
|
||||
//-------------------------------
|
||||
|
||||
public override func intrinsicContentSize() -> CGSize {
|
||||
return CGSizeMake(UIViewNoIntrinsicMetric, UIViewNoIntrinsicMetric)
|
||||
}
|
||||
|
||||
public override func layoutSubviews() {
|
||||
super.layoutSubviews()
|
||||
|
||||
adjustBackgroundRingWidth()
|
||||
|
||||
// Update progress frame
|
||||
progressUpdate?()
|
||||
}
|
||||
|
||||
public func adjustBackgroundRingWidth()
|
||||
{
|
||||
if backgroundRingWidth > 0 {
|
||||
adjustedBackgroundRingWidth = CGFloat(backgroundRingWidth)
|
||||
} else {
|
||||
adjustedBackgroundRingWidth = max(self.bounds.size.width * 0.025, 1.0)
|
||||
}
|
||||
indeterminateLayer.lineWidth = adjustedBackgroundRingWidth
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Draw Functions
|
||||
//-------------------------------
|
||||
|
||||
public func maxRadius() -> CGFloat
|
||||
{
|
||||
return min(self.bounds.size.width, self.bounds.size.height) / 2.0
|
||||
}
|
||||
|
||||
public func centerOfCircle() -> CGPoint
|
||||
{
|
||||
return CGPointMake(self.bounds.size.width / 2.0, self.bounds.size.height / 2.0)
|
||||
}
|
||||
|
||||
public func createPieSlicePath(center: CGPoint, radius: CGFloat, startAngle: CGFloat, endAngle: CGFloat, clockwise: Bool) -> UIBezierPath {
|
||||
let path = UIBezierPath()
|
||||
path.moveToPoint(center)
|
||||
path.addLineToPoint(CGPointMake(center.x + radius * cos(startAngle), center.y + radius * sin(startAngle)))
|
||||
path.addArcWithCenter(center, radius: radius, startAngle: startAngle, endAngle: endAngle, clockwise: clockwise)
|
||||
path.closePath()
|
||||
return path
|
||||
}
|
||||
|
||||
public func drawBackground()
|
||||
{
|
||||
// Draw a circle
|
||||
let center = centerOfCircle()
|
||||
let radius = maxRadius() - adjustedBackgroundRingWidth / 2.0
|
||||
let path = UIBezierPath()
|
||||
path.addArcWithCenter(center, radius: radius, startAngle: 0, endAngle: 2.0 * CGFloat(M_PI), clockwise: true)
|
||||
indeterminateLayer.path = path.CGPath
|
||||
}
|
||||
|
||||
public func drawSuccess()
|
||||
{
|
||||
// Draw relative to a base size and percentage, that way the check can be drawn for any size.
|
||||
let radius = maxRadius()
|
||||
let size = radius * 0.3
|
||||
|
||||
// Create the path for the Checkmark
|
||||
let path = UIBezierPath()
|
||||
path.moveToPoint(CGPointMake(0, 0))
|
||||
path.addLineToPoint(CGPointMake(0, size * 2))
|
||||
path.addLineToPoint(CGPointMake(size * 3, size * 2))
|
||||
path.addLineToPoint(CGPointMake(size * 3, size))
|
||||
path.addLineToPoint(CGPointMake(size, size))
|
||||
path.addLineToPoint(CGPointMake(size, 0))
|
||||
path.closePath()
|
||||
|
||||
// Rotate it through -45 degrees...
|
||||
path.applyTransform(CGAffineTransformMakeRotation(CGFloat(-M_PI_4)))
|
||||
|
||||
// Center it
|
||||
path.applyTransform(CGAffineTransformMakeTranslation(radius * 0.46, radius * 1.02))
|
||||
|
||||
// Set path and fill color
|
||||
iconLayer.path = path.CGPath
|
||||
iconLayer.fillColor = successColor.CGColor
|
||||
}
|
||||
|
||||
public func drawFailure()
|
||||
{
|
||||
// Calculate the size of the X
|
||||
let radius = maxRadius()
|
||||
let size = radius * 0.3
|
||||
|
||||
// Create the path for the X
|
||||
let path = UIBezierPath()
|
||||
path.moveToPoint(CGPointMake(size, 0))
|
||||
path.addLineToPoint(CGPointMake(2 * size, 0))
|
||||
path.addLineToPoint(CGPointMake(2 * size, size))
|
||||
path.addLineToPoint(CGPointMake(3 * size, size))
|
||||
path.addLineToPoint(CGPointMake(3 * size, 2 * size))
|
||||
path.addLineToPoint(CGPointMake(2 * size, 2 * size))
|
||||
path.addLineToPoint(CGPointMake(2 * size, 3 * size))
|
||||
path.addLineToPoint(CGPointMake(size, 3 * size))
|
||||
path.addLineToPoint(CGPointMake(size, 2 * size))
|
||||
path.addLineToPoint(CGPointMake(0, 2 * size))
|
||||
path.addLineToPoint(CGPointMake(0, size))
|
||||
path.addLineToPoint(CGPointMake(size, size))
|
||||
path.closePath()
|
||||
|
||||
// Center it
|
||||
path.applyTransform(CGAffineTransformMakeTranslation(radius - (1.5 * size), radius - (1.5 * size)))
|
||||
|
||||
// Rotate path
|
||||
let a = CGFloat(cos(M_PI_4))
|
||||
let b = CGFloat(sin(M_PI_4))
|
||||
let c = CGFloat(-sin(M_PI_4))
|
||||
let d = CGFloat(cos(M_PI_4))
|
||||
let tx = radius * CGFloat(1 - cos(M_PI_4) + sin(M_PI_4))
|
||||
let ty = radius * CGFloat(1 - sin(M_PI_4) - cos(M_PI_4))
|
||||
path.applyTransform(CGAffineTransformMake(a, b, c, d, tx, ty))
|
||||
|
||||
// Set path and fill color
|
||||
iconLayer.path = path.CGPath
|
||||
iconLayer.fillColor = failureColor.CGColor
|
||||
}
|
||||
|
||||
public func hideIcon()
|
||||
{
|
||||
iconLayer.path = nil
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Other
|
||||
//-------------------------------
|
||||
|
||||
public override func tintColorDidChange() {
|
||||
super.tintColorDidChange()
|
||||
progressLayer.fillColor = tintColor.CGColor
|
||||
progressLayer.strokeColor = nil
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,302 @@
|
||||
//
|
||||
// M13ProgressFilteredImage.swift
|
||||
// M13ProgressSuite
|
||||
//
|
||||
/*
|
||||
Copyright (c) 2015 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
import UIKit
|
||||
|
||||
/**
|
||||
The possible filters that can be applied to a progress image.
|
||||
|
||||
- Blur: The image goes from blurry to in-focus as progress nears completion.
|
||||
- LightTunnel:
|
||||
- SepiaTone: The image goes from Sepia Tone to full-color as progress nears completion.
|
||||
*/
|
||||
public enum M13ProgressImageProgressFilter: Int, RawRepresentable {
|
||||
///
|
||||
case Blur
|
||||
///
|
||||
case LightTunnel
|
||||
///
|
||||
case SepiaTone
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
A progress view where progress is shown by changes in CIFilters.
|
||||
@note This progress bar does not have in indeterminate mode and does not respond to actions.
|
||||
*/
|
||||
@IBDesignable
|
||||
public class M13ProgressFilteredImage: M13ProgressView {
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Properties
|
||||
//-------------------------------
|
||||
|
||||
/**
|
||||
The direction the progress bar travels in as the progress nears completion. (What direction the fill proceeds in.)
|
||||
*/
|
||||
@IBInspectable public var progressFilter: M13ProgressImageProgressFilter = .Blur {
|
||||
didSet {
|
||||
switch (progressFilter) {
|
||||
case .Blur:
|
||||
setBlurFilter()
|
||||
case .LightTunnel:
|
||||
setLightTunnelFilter()
|
||||
case .SepiaTone:
|
||||
setSepiaToneFilter()
|
||||
}
|
||||
progressUpdate?()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
The image to use when showing progress.
|
||||
*/
|
||||
@IBInspectable public var progressImage: UIImage! {
|
||||
didSet {
|
||||
progressUpdate?()
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Filter Variables
|
||||
//-------------------------------
|
||||
|
||||
/**
|
||||
The array of CIFilters to apply to the image.
|
||||
*/
|
||||
public var filters :[AnyObject] = []
|
||||
|
||||
/**
|
||||
The dictionaries of dictionaries that correspond to filter properties to be changed.
|
||||
NSArray
|
||||
|------ NSDictionary (Index matches the coresponding CIFilter in filters)
|
||||
| |---- "Parameter Key" -> NSDictionary
|
||||
| | |------ "Start Value" -> NSNumber
|
||||
| | |------ "End Value" -> NSNumber
|
||||
| |---- "Parameter Key" -> NSDictionary
|
||||
| |------ "Start Value" -> NSNumber
|
||||
| |------ "End Value" -> NSNumber
|
||||
|------ NSDictionary ...
|
||||
*/
|
||||
public var filterParameters :[ [String:AnyObject] ] = []
|
||||
|
||||
/**
|
||||
Keys for the filterParameters dictionary.
|
||||
*/
|
||||
public let FilterStartValuesKey = "StartValues"
|
||||
public let FilterEndValuesKey = "EndValues"
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Protected Variables
|
||||
//-------------------------------
|
||||
|
||||
/**
|
||||
The UIImageView that shows the progress image.
|
||||
*/
|
||||
internal var progressView: UIImageView!
|
||||
|
||||
/**
|
||||
Link to the display to keep animations in sync.
|
||||
*/
|
||||
internal var displayLink: CADisplayLink!
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Initalization
|
||||
//-------------------------------
|
||||
|
||||
override public init() {
|
||||
super.init()
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
required public init?(coder aDecoder: NSCoder) {
|
||||
if aDecoder.containsValueForKey("progressFilter") {
|
||||
if let filter = M13ProgressImageProgressFilter(rawValue: aDecoder.decodeIntegerForKey("progressFilter")) {
|
||||
progressFilter = filter
|
||||
}
|
||||
}
|
||||
if aDecoder.containsValueForKey("progressImage") {
|
||||
if let img = aDecoder.decodeObjectForKey("progressImage") as? UIImage {
|
||||
progressImage = img
|
||||
}
|
||||
}
|
||||
|
||||
super.init(coder: aDecoder)
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
override public init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
internal func sharedSetup() {
|
||||
// Set the defaults
|
||||
self.clipsToBounds = false
|
||||
layer.backgroundColor = UIColor.clearColor().CGColor
|
||||
|
||||
// Set the progress image view
|
||||
progressView = UIImageView(frame: self.bounds)
|
||||
progressView.contentMode = .ScaleAspectFit
|
||||
addSubview(progressView)
|
||||
|
||||
// Layout
|
||||
layoutSubviews()
|
||||
|
||||
// Set the progress animation.
|
||||
weak var weakSelf: M13ProgressFilteredImage? = self
|
||||
progressUpdate = {() -> Void in
|
||||
if let retainedSelf = weakSelf {
|
||||
retainedSelf.progressView.image = retainedSelf.createImageForCurrentProgress()
|
||||
}
|
||||
}
|
||||
|
||||
// There is no indeterminate animation.
|
||||
}
|
||||
|
||||
public override func encodeWithCoder(aCoder: NSCoder) {
|
||||
aCoder.encodeInteger(progressFilter.rawValue, forKey: "progressFilter")
|
||||
aCoder.encodeObject(progressImage)
|
||||
super.encodeWithCoder(aCoder)
|
||||
}
|
||||
|
||||
public override func prepareForInterfaceBuilder() {
|
||||
sharedSetup()
|
||||
super.prepareForInterfaceBuilder()
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Filters
|
||||
//-------------------------------
|
||||
|
||||
internal func setBlurFilter()
|
||||
{
|
||||
guard let blurFilter = CIFilter(name: "CIGaussianBlur") else {
|
||||
return
|
||||
}
|
||||
|
||||
blurFilter.setDefaults()
|
||||
|
||||
filters = [ blurFilter ]
|
||||
|
||||
filterParameters = [
|
||||
[
|
||||
"inputRadius" : [
|
||||
FilterStartValuesKey : CGFloat(100.0),
|
||||
FilterEndValuesKey : CGFloat(0.0)
|
||||
]
|
||||
]
|
||||
]
|
||||
}
|
||||
|
||||
internal func setSepiaToneFilter()
|
||||
{
|
||||
guard let sepiaFilter = CIFilter(name: "CISepiaTone") else {
|
||||
return
|
||||
}
|
||||
|
||||
sepiaFilter.setDefaults()
|
||||
|
||||
// Set filter intensity
|
||||
sepiaFilter.setValue(1.0, forKey: kCIInputIntensityKey)
|
||||
|
||||
filters = [ sepiaFilter ]
|
||||
|
||||
filterParameters = [
|
||||
[
|
||||
kCIInputIntensityKey : [
|
||||
FilterStartValuesKey : CGFloat(1.0),
|
||||
FilterEndValuesKey : CGFloat(0.0)
|
||||
]
|
||||
]
|
||||
]
|
||||
}
|
||||
|
||||
internal func setLightTunnelFilter()
|
||||
{
|
||||
if false { "TODO: CILightTunnel filter does not work yet" }
|
||||
|
||||
guard let lightTunnelFilter = CIFilter(name: "CILightTunnel") else {
|
||||
return
|
||||
}
|
||||
|
||||
lightTunnelFilter.setDefaults()
|
||||
|
||||
// Get center
|
||||
let center = CIVector(CGPoint: CGPointMake(progressImage.size.width / 2.0, progressImage.size.height / 2.0))
|
||||
lightTunnelFilter.setValue(center, forKey: "inputCenter")
|
||||
|
||||
filters = [ lightTunnelFilter ]
|
||||
|
||||
filterParameters = [
|
||||
[
|
||||
"inputRotation" : [
|
||||
FilterStartValuesKey : CGFloat(10.0),
|
||||
FilterEndValuesKey : CGFloat(0.0)
|
||||
],
|
||||
"inputRadius" : [
|
||||
FilterStartValuesKey : CGFloat(20.0),
|
||||
FilterEndValuesKey : CGFloat(0.0)
|
||||
]
|
||||
]
|
||||
]
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Layout
|
||||
//-------------------------------
|
||||
|
||||
public override func intrinsicContentSize() -> CGSize {
|
||||
return CGSizeMake(UIViewNoIntrinsicMetric, UIViewNoIntrinsicMetric)
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Draw Functions
|
||||
//-------------------------------
|
||||
|
||||
public func createImageForCurrentProgress() -> UIImage? {
|
||||
guard let cgimage = progressImage.CGImage else {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Create the base CIImage
|
||||
var ciimage = CIImage(CGImage: cgimage)
|
||||
// Change the values of the CIFilters before drawing
|
||||
for (var i = 0; i < filters.count; ++i) {
|
||||
let filter = filters[i]
|
||||
// For each filter
|
||||
let parameters = filterParameters[i]
|
||||
// For each parameter
|
||||
for parameterKey in parameters.keys {
|
||||
// Retrieve the values
|
||||
let obj = parameters[parameterKey]
|
||||
if let parameterDict = obj as? [String:CGFloat] {
|
||||
if let startValue = parameterDict[FilterStartValuesKey], let endValue = parameterDict[FilterEndValuesKey] {
|
||||
// Calculate the current value
|
||||
let value = startValue + ((endValue - startValue) * self.progress)
|
||||
// Set the value
|
||||
filter.setValue(value, forKey: parameterKey)
|
||||
}
|
||||
}
|
||||
}
|
||||
// Set the input image
|
||||
filter.setValue(ciimage, forKey: kCIInputImageKey)
|
||||
if let img0 = filter.outputImage, let img1 = img0 {
|
||||
ciimage = img1
|
||||
}
|
||||
}
|
||||
return UIImage(CIImage: ciimage)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,243 @@
|
||||
//
|
||||
// M13ProgressImage.swift
|
||||
// M13ProgressSuite
|
||||
//
|
||||
/*
|
||||
Copyright (c) 2015 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
import UIKit
|
||||
|
||||
/**
|
||||
A progress bar where progress is shown by cutting an image.
|
||||
@note This progress bar does not have in indeterminate mode and does not respond to actions.
|
||||
*/
|
||||
@IBDesignable
|
||||
public class M13ProgressImage: M13ProgressView {
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Properties
|
||||
//-------------------------------
|
||||
|
||||
/**
|
||||
The direction the progress bar travels in as the progress nears completion. (What direction the fill proceeds in.)
|
||||
*/
|
||||
@IBInspectable public var progressDirection: M13ProgressBarProgressDirection = .LeadingToTrailing {
|
||||
didSet {
|
||||
progressUpdate?()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
The image to use when showing progress.
|
||||
*/
|
||||
@IBInspectable public var progressImage: UIImage! {
|
||||
didSet {
|
||||
progressUpdate?()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
Whether or not to draw the greyscale background.
|
||||
*/
|
||||
@IBInspectable public var drawGreyscaleBackground: Bool = true {
|
||||
didSet {
|
||||
progressUpdate?()
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Protected Variables
|
||||
//-------------------------------
|
||||
|
||||
/**
|
||||
The UIImageView that shows the progress image.
|
||||
*/
|
||||
internal var progressView: UIImageView!
|
||||
|
||||
/**
|
||||
Link to the display to keep animations in sync.
|
||||
*/
|
||||
internal var displayLink: CADisplayLink!
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Initalization
|
||||
//-------------------------------
|
||||
|
||||
override public init() {
|
||||
super.init()
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
required public init?(coder aDecoder: NSCoder) {
|
||||
if aDecoder.containsValueForKey("progressDirection") {
|
||||
if let direction = M13ProgressBarProgressDirection(rawValue: aDecoder.decodeIntegerForKey("progressDirection")) {
|
||||
progressDirection = direction
|
||||
}
|
||||
}
|
||||
if aDecoder.containsValueForKey("progressImage") {
|
||||
if let img = aDecoder.decodeObjectForKey("progressImage") as? UIImage {
|
||||
progressImage = img
|
||||
}
|
||||
}
|
||||
if aDecoder.containsValueForKey("drawGreyscaleBackground") {
|
||||
drawGreyscaleBackground = aDecoder.decodeBoolForKey("drawGreyscaleBackground")
|
||||
}
|
||||
|
||||
super.init(coder: aDecoder)
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
override public init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
internal func sharedSetup() {
|
||||
// Set the defaults
|
||||
self.clipsToBounds = false
|
||||
layer.backgroundColor = UIColor.clearColor().CGColor
|
||||
|
||||
// Set the progress image view
|
||||
progressView = UIImageView(frame: self.bounds)
|
||||
progressView.contentMode = .ScaleAspectFit
|
||||
addSubview(progressView)
|
||||
|
||||
// Layout
|
||||
layoutSubviews()
|
||||
|
||||
// Set the progress animation.
|
||||
weak var weakSelf: M13ProgressImage? = self
|
||||
progressUpdate = {() -> Void in
|
||||
if let retainedSelf = weakSelf {
|
||||
retainedSelf.progressView.image = retainedSelf.createImageForCurrentProgress()
|
||||
}
|
||||
}
|
||||
|
||||
// There is no indeterminate animation.
|
||||
}
|
||||
|
||||
public override func encodeWithCoder(aCoder: NSCoder) {
|
||||
aCoder.encodeInteger(progressDirection.rawValue, forKey: "progressDirection")
|
||||
aCoder.encodeObject(progressImage, forKey: "progressImage")
|
||||
aCoder.encodeBool(drawGreyscaleBackground, forKey: "drawGreyscaleBackground")
|
||||
super.encodeWithCoder(aCoder)
|
||||
}
|
||||
|
||||
public override func prepareForInterfaceBuilder() {
|
||||
sharedSetup()
|
||||
super.prepareForInterfaceBuilder()
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Actions
|
||||
//-------------------------------
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Layout
|
||||
//-------------------------------
|
||||
|
||||
public override func intrinsicContentSize() -> CGSize {
|
||||
return CGSizeMake(UIViewNoIntrinsicMetric, UIViewNoIntrinsicMetric)
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Draw Functions
|
||||
//-------------------------------
|
||||
|
||||
public func createImageForCurrentProgress() -> UIImage?
|
||||
{
|
||||
// Create image rectangle with current image width/height
|
||||
let imageRect = CGRectMake(0, 0, progressImage.size.width * progressImage.scale, progressImage.size.height * progressImage.scale)
|
||||
|
||||
let width = imageRect.size.width
|
||||
let height = imageRect.size.height
|
||||
|
||||
// The pixels will be painted to this array
|
||||
let BPP = 4 // 4 bytes per pixel (alpha-red-green-blue)
|
||||
let memsize = Int(width) * Int(height)
|
||||
let pixels = UnsafeMutablePointer<UInt32>.alloc(memsize)
|
||||
// Clear the pixels so any transparency is preserved
|
||||
pixels.initializeFrom(Repeat(count: memsize, repeatedValue: 0))
|
||||
|
||||
//Create a context with ARGB pixels
|
||||
let colorSpace = CGColorSpaceCreateDeviceRGB()
|
||||
let bitmapInfo = CGBitmapInfo.ByteOrder32Little.rawValue | CGImageAlphaInfo.PremultipliedLast.rawValue
|
||||
let context = CGBitmapContextCreate(pixels, Int(width), Int(height), 8, Int(width) * BPP, colorSpace, bitmapInfo)
|
||||
|
||||
// Paint the bitmap to our context which will fill in the pixels array
|
||||
CGContextDrawImage(context, CGRectMake(0, 0, width, height), progressImage.CGImage)
|
||||
|
||||
// Calculate the ranges to make greyscale or transparent
|
||||
var xFrom: Int = 0
|
||||
var xTo : Int = Int(width)
|
||||
var yFrom: Int = 0
|
||||
var yTo : Int = Int(height)
|
||||
|
||||
if (progressDirection == .BottomToTop) {
|
||||
yTo = Int(height * (1 - self.progress))
|
||||
} else if (progressDirection == .TopToBottom) {
|
||||
yFrom = Int(height * self.progress)
|
||||
} else if (progressDirection == .LeadingToTrailing) {
|
||||
xFrom = Int(width * self.progress)
|
||||
} else if (progressDirection == .TrailingToLeading) {
|
||||
xTo = Int(width * (1 - self.progress))
|
||||
}
|
||||
|
||||
for (var x = xFrom; x < xTo; ++x) {
|
||||
for (var y = yFrom; y < yTo; ++y) {
|
||||
// Get the pixel
|
||||
let index = (y * Int(width) + x)
|
||||
// Convert
|
||||
if drawGreyscaleBackground {
|
||||
|
||||
let value = pixels[index]
|
||||
|
||||
// Mask out the alpha component
|
||||
let alpha = value & 0x000000FF
|
||||
|
||||
// Mask out the red-green-blue component values, and bitshift them down to one byte
|
||||
let r0 = UInt8((value & 0x0000FF00) >> 8)
|
||||
let g0 = UInt8((value & 0x00FF0000) >> 16)
|
||||
let b0 = UInt8((value & 0xFF000000) >> 24)
|
||||
|
||||
if false { "TODO: grayscale has a very green hue to it -- should be more gray" }
|
||||
|
||||
// Convert each red-green-blue component value to grayscale using luma coding
|
||||
// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale
|
||||
let r1 = UInt8(0.299 * CGFloat(r0))
|
||||
let g1 = UInt8(0.587 * CGFloat(g0))
|
||||
let b1 = UInt8(0.114 * CGFloat(b0))
|
||||
|
||||
// Set the current pixel to gray
|
||||
// Bitshift the red-green-blue component values left so we can OR them into a 4-byte pixel value
|
||||
let r2 = UInt32(r1) << 8
|
||||
let g2 = UInt32(g1) << 16
|
||||
let b2 = UInt32(b1) << 24
|
||||
pixels[index] = alpha | r2 | g2 | b2
|
||||
} else {
|
||||
// Convert the current pixel to transparent
|
||||
pixels[index] = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// We're done with the pixel array, so release it
|
||||
pixels.dealloc(memsize)
|
||||
|
||||
// Create a new CGImageRef from our context with the modified pixels, then
|
||||
// Make a new UIImage to return
|
||||
if let image = CGBitmapContextCreateImage(context) {
|
||||
return UIImage(CGImage: image, scale: progressImage.scale, orientation: .Up)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
//
|
||||
// M13ProgressPie.swift
|
||||
// M13ProgressSuite
|
||||
//
|
||||
/*
|
||||
Copyright (c) 2015 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
import UIKit
|
||||
|
||||
/**
|
||||
A progress view that shows progress with a pie chart.
|
||||
*/
|
||||
@IBDesignable
|
||||
public class M13ProgressPie: M13ProgressCircular {
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Initalization
|
||||
//-------------------------------
|
||||
|
||||
override public init() {
|
||||
super.init()
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
required public init?(coder aDecoder: NSCoder) {
|
||||
super.init(coder: aDecoder)
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
override public init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
override internal func sharedSetup() {
|
||||
super.sharedSetup()
|
||||
|
||||
// Set the defaults.
|
||||
self.clipsToBounds = false
|
||||
layer.backgroundColor = UIColor.clearColor().CGColor
|
||||
|
||||
// Set the progress animation.
|
||||
weak var weakSelf: M13ProgressPie? = self
|
||||
progressUpdate = {() -> Void in
|
||||
|
||||
if let retainedSelf = weakSelf {
|
||||
|
||||
// Create parameters to draw ring
|
||||
var startAngle = CGFloat(-M_PI_2)
|
||||
var endAngle = startAngle + (2.0 * CGFloat(M_PI) * retainedSelf.progress)
|
||||
|
||||
let clockwise = (retainedSelf.progressDirection == .Clockwise)
|
||||
if !clockwise {
|
||||
// For counter-clockwise, subtract angles from 360 degrees, and swap start-end
|
||||
let tmp = CGFloat(M_PI) - startAngle
|
||||
startAngle = CGFloat(M_PI) - endAngle
|
||||
endAngle = tmp
|
||||
}
|
||||
|
||||
// Draw background
|
||||
retainedSelf.drawBackground()
|
||||
|
||||
// Draw progress ring
|
||||
let center = retainedSelf.centerOfCircle()
|
||||
let radius = retainedSelf.maxRadius()
|
||||
let path = retainedSelf.createPieSlicePath(center, radius: radius, startAngle: startAngle, endAngle: endAngle, clockwise: true)
|
||||
retainedSelf.progressLayer.path = path.CGPath
|
||||
}
|
||||
}
|
||||
|
||||
// Set the indeterminate animation.
|
||||
indeterminateUpdate = {(frameDuration: CFTimeInterval) -> Void in
|
||||
|
||||
if let retainedSelf = weakSelf {
|
||||
|
||||
// Create parameters to draw progress
|
||||
let startAngle = CGFloat(retainedSelf.indeterminateAnimationAngle)
|
||||
let endAngle = startAngle + CGFloat(M_PI) * 2.0 * 0.8 // 80% of a circle
|
||||
|
||||
let deltaAngle = CGFloat(frameDuration * 2.0 * M_PI)
|
||||
if retainedSelf.progressDirection == .CounterClockwise {
|
||||
// CounterClockwise
|
||||
retainedSelf.indeterminateAnimationAngle -= deltaAngle
|
||||
} else {
|
||||
// Clockwise
|
||||
retainedSelf.indeterminateAnimationAngle += deltaAngle
|
||||
}
|
||||
|
||||
// Draw background
|
||||
retainedSelf.drawBackground()
|
||||
|
||||
// Draw path
|
||||
let center = retainedSelf.centerOfCircle()
|
||||
let radius = retainedSelf.maxRadius()
|
||||
let path = retainedSelf.createPieSlicePath(center, radius: radius, startAngle: startAngle, endAngle: endAngle, clockwise: false)
|
||||
retainedSelf.progressLayer.path = path.CGPath
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,315 @@
|
||||
//
|
||||
// M13ProgressRing.swift
|
||||
// M13ProgressSuite
|
||||
//
|
||||
/*
|
||||
Copyright (c) 2015 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
import UIKit
|
||||
|
||||
/**
|
||||
A progress view stylized similarly to the iOS 7 App store progress view.
|
||||
*/
|
||||
@IBDesignable
|
||||
public class M13ProgressRing: M13ProgressCircular {
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Properties
|
||||
//-------------------------------
|
||||
|
||||
@IBInspectable public var percentage: Bool = false {
|
||||
didSet {
|
||||
percentageLabel.hidden = !percentage
|
||||
setNeedsLayout()
|
||||
progressUpdate?()
|
||||
}
|
||||
}
|
||||
|
||||
@IBInspectable public var progressRingWidth :Int = 0 {
|
||||
didSet {
|
||||
setNeedsLayout()
|
||||
progressUpdate?()
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Property Overrides
|
||||
//-------------------------------
|
||||
|
||||
override public var indeterminate: Bool {
|
||||
didSet {
|
||||
let tmp = indeterminate
|
||||
super.indeterminate = tmp
|
||||
if indeterminate {
|
||||
progressLayer.hidden = true
|
||||
percentageLabel.hidden = true
|
||||
} else {
|
||||
progressLayer.hidden = false
|
||||
percentageLabel.hidden = !percentage
|
||||
}
|
||||
|
||||
setNeedsLayout()
|
||||
progressUpdate?()
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Protected Variables
|
||||
//-------------------------------
|
||||
|
||||
/** The number formatter to display the progress percentage. */
|
||||
internal var percentageFormatter: NSNumberFormatter!
|
||||
/** The label that shows the percentage. */
|
||||
internal var percentageLabel: UILabel!
|
||||
/** Ring widths after validation and bounds adjustments */
|
||||
internal var adjustedProgressRingWidth :CGFloat = 0
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Initalization
|
||||
//-------------------------------
|
||||
|
||||
override public init() {
|
||||
super.init()
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
required public init?(coder aDecoder: NSCoder) {
|
||||
if aDecoder.containsValueForKey("percentage") {
|
||||
percentage = aDecoder.decodeBoolForKey("percentage")
|
||||
}
|
||||
if aDecoder.containsValueForKey("progressRingWidth") {
|
||||
progressRingWidth = aDecoder.decodeIntegerForKey("progressRingWidth")
|
||||
}
|
||||
|
||||
super.init(coder: aDecoder)
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
override public init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
internal override func sharedSetup() {
|
||||
super.sharedSetup()
|
||||
|
||||
// Set the defaults.
|
||||
self.clipsToBounds = false
|
||||
layer.backgroundColor = UIColor.clearColor().CGColor
|
||||
|
||||
// Set up the indeterminate layer
|
||||
indeterminateLayer.strokeColor = secondaryColor.CGColor
|
||||
indeterminateLayer.fillColor = nil
|
||||
|
||||
// Set up the progress layer
|
||||
progressLayer.strokeColor = tintColor.CGColor
|
||||
progressLayer.fillColor = nil
|
||||
|
||||
adjustProgressRingWidth()
|
||||
|
||||
// Set up the number formatter
|
||||
percentageFormatter = NSNumberFormatter()
|
||||
percentageFormatter.numberStyle = .PercentStyle
|
||||
|
||||
// Set the percentage label
|
||||
percentageLabel = UILabel(frame: self.bounds)
|
||||
percentageLabel.textAlignment = .Center
|
||||
percentageLabel.contentMode = .Center
|
||||
self.addSubview(percentageLabel)
|
||||
|
||||
// Set the progress animation.
|
||||
weak var weakSelf: M13ProgressRing? = self
|
||||
progressUpdate = {() -> Void in
|
||||
|
||||
if let retainedSelf = weakSelf {
|
||||
|
||||
// Create parameters to draw ring
|
||||
let clockwise = (retainedSelf.progressDirection == .Clockwise)
|
||||
var startAngle = CGFloat(-M_PI_2)
|
||||
var endAngle = startAngle + (2.0 * CGFloat(M_PI) * retainedSelf.progress)
|
||||
if !clockwise {
|
||||
// For counter-clockwise, subtract angles from 360 degrees, and swap start-end
|
||||
let tmp = CGFloat(M_PI) - startAngle
|
||||
startAngle = CGFloat(M_PI) - endAngle
|
||||
endAngle = tmp
|
||||
}
|
||||
|
||||
// Draw background
|
||||
retainedSelf.drawBackground()
|
||||
|
||||
// Draw progress ring
|
||||
let center = retainedSelf.centerOfCircle()
|
||||
let radius = retainedSelf.maxRadius() - retainedSelf.adjustedProgressRingWidth / 2.0
|
||||
let path = UIBezierPath()
|
||||
path.addArcWithCenter(center, radius: radius, startAngle: startAngle, endAngle: endAngle, clockwise: true)
|
||||
retainedSelf.progressLayer.path = path.CGPath
|
||||
|
||||
// Draw percentage
|
||||
if retainedSelf.percentage && retainedSelf.state == .Normal {
|
||||
retainedSelf.drawPercentage()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Set the indeterminate animation.
|
||||
indeterminateUpdate = {(frameDuration: CFTimeInterval) -> Void in
|
||||
|
||||
if let retainedSelf = weakSelf {
|
||||
|
||||
retainedSelf.hidePercentage()
|
||||
|
||||
// Create parameters to draw progress
|
||||
let startAngle = CGFloat(retainedSelf.indeterminateAnimationAngle)
|
||||
let endAngle = startAngle + CGFloat(M_PI) * 2.0 * 0.8 // 80% of a circle
|
||||
|
||||
let deltaAngle = CGFloat(frameDuration * 2.0 * M_PI)
|
||||
if retainedSelf.progressDirection == .CounterClockwise {
|
||||
// CounterClockwise
|
||||
retainedSelf.indeterminateAnimationAngle -= deltaAngle
|
||||
} else {
|
||||
// Clockwise
|
||||
retainedSelf.indeterminateAnimationAngle += deltaAngle
|
||||
}
|
||||
|
||||
// Draw path
|
||||
let center = retainedSelf.centerOfCircle()
|
||||
let radius = retainedSelf.maxRadius() - retainedSelf.adjustedBackgroundRingWidth / 2.0
|
||||
let path = UIBezierPath()
|
||||
path.addArcWithCenter(center, radius: radius, startAngle: startAngle, endAngle: endAngle, clockwise: true)
|
||||
retainedSelf.indeterminateLayer.path = path.CGPath
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override func encodeWithCoder(aCoder: NSCoder) {
|
||||
aCoder.encodeBool(percentage, forKey: "percentage")
|
||||
aCoder.encodeInteger(progressRingWidth, forKey: "progressRingWidth")
|
||||
super.encodeWithCoder(aCoder)
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Actions
|
||||
//-------------------------------
|
||||
|
||||
public override func setState(state: M13ProgressViewState, animated: Bool) {
|
||||
super.setState(state, animated: animated)
|
||||
|
||||
var toColor1: UIColor = tintColor
|
||||
var toColor2: UIColor = secondaryColor
|
||||
switch state {
|
||||
case .Normal:
|
||||
hideIcon()
|
||||
if percentage {
|
||||
drawPercentage()
|
||||
}
|
||||
break
|
||||
case .Success:
|
||||
hidePercentage()
|
||||
drawSuccess()
|
||||
toColor1 = successColor
|
||||
if indeterminate {
|
||||
toColor2 = successColor
|
||||
}
|
||||
break
|
||||
case .Failure:
|
||||
hidePercentage()
|
||||
drawFailure()
|
||||
toColor1 = failureColor
|
||||
if indeterminate {
|
||||
toColor2 = failureColor
|
||||
}
|
||||
break
|
||||
}
|
||||
|
||||
if !animated {
|
||||
progressLayer.strokeColor = toColor1.CGColor
|
||||
indeterminateLayer.strokeColor = toColor2.CGColor
|
||||
} else {
|
||||
let colorAnimation1: CABasicAnimation = CABasicAnimation(keyPath: "strokeColor")
|
||||
colorAnimation1.fromValue = progressLayer.backgroundColor!
|
||||
colorAnimation1.fillMode = kCAFillModeForwards
|
||||
colorAnimation1.removedOnCompletion = false
|
||||
colorAnimation1.duration = animationDuration
|
||||
|
||||
let colorAnimation2: CABasicAnimation = CABasicAnimation(keyPath: "strokeColor")
|
||||
colorAnimation2.fromValue = indeterminateLayer.backgroundColor!
|
||||
colorAnimation2.fillMode = kCAFillModeForwards
|
||||
colorAnimation2.removedOnCompletion = false
|
||||
colorAnimation2.duration = animationDuration
|
||||
|
||||
colorAnimation1.toValue = toColor1.CGColor
|
||||
progressLayer.addAnimation(colorAnimation1, forKey: "strokeColor")
|
||||
progressLayer.strokeColor = toColor1.CGColor
|
||||
|
||||
colorAnimation2.toValue = toColor2.CGColor
|
||||
indeterminateLayer.addAnimation(colorAnimation2, forKey: "strokeColor")
|
||||
indeterminateLayer.strokeColor = toColor2.CGColor
|
||||
}
|
||||
|
||||
setNeedsLayout()
|
||||
progressUpdate?()
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Layout
|
||||
//-------------------------------
|
||||
|
||||
public override func layoutSubviews() {
|
||||
super.layoutSubviews()
|
||||
|
||||
adjustProgressRingWidth()
|
||||
|
||||
// Percentage label
|
||||
if percentage {
|
||||
percentageLabel.frame = self.bounds
|
||||
percentageLabel.font = UIFont.systemFontOfSize(self.bounds.size.width / 5)
|
||||
percentageLabel.textColor = tintColor
|
||||
}
|
||||
|
||||
// Update progress frame
|
||||
progressUpdate?()
|
||||
}
|
||||
|
||||
public func adjustProgressRingWidth()
|
||||
{
|
||||
if progressRingWidth > 0 {
|
||||
adjustedProgressRingWidth = CGFloat(progressRingWidth)
|
||||
} else {
|
||||
adjustedProgressRingWidth = adjustedBackgroundRingWidth * 3.0
|
||||
}
|
||||
progressLayer.lineWidth = adjustedProgressRingWidth
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Draw Functions
|
||||
//-------------------------------
|
||||
|
||||
public func drawPercentage()
|
||||
{
|
||||
percentageLabel.text = percentageFormatter.stringFromNumber(self.progress)
|
||||
}
|
||||
|
||||
public func hidePercentage()
|
||||
{
|
||||
percentageLabel.text = ""
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Other
|
||||
//-------------------------------
|
||||
|
||||
public override func tintColorDidChange() {
|
||||
super.tintColorDidChange()
|
||||
progressLayer.fillColor = nil
|
||||
progressLayer.strokeColor = tintColor.CGColor
|
||||
percentageLabel.textColor = tintColor
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,391 @@
|
||||
//
|
||||
// M13ProgressSegmentedRing.swift
|
||||
// M13ProgressSuite
|
||||
//
|
||||
/*
|
||||
Copyright (c) 2015 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
import UIKit
|
||||
|
||||
/**
|
||||
The segment boundary types.
|
||||
|
||||
- Wedge:
|
||||
- Rectangle:
|
||||
*/
|
||||
public enum M13ProgressViewSegmentedRingSegmentBoundaryType: Int, RawRepresentable {
|
||||
///
|
||||
case Wedge
|
||||
///
|
||||
case Rectangle
|
||||
}
|
||||
|
||||
/**
|
||||
Progress is shown by a ring split up into segments.
|
||||
*/
|
||||
@IBDesignable
|
||||
public class M13ProgressSegmentedRing: M13ProgressRing {
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Properties
|
||||
//-------------------------------
|
||||
|
||||
/**
|
||||
The number of segments to display in the progress view.
|
||||
*/
|
||||
@IBInspectable public var numberOfSegments: Int = 10
|
||||
|
||||
/**
|
||||
The angle of the separation between the segments in radians.
|
||||
*/
|
||||
@IBInspectable public var segmentSeparationAngle :CGFloat = 0.1
|
||||
|
||||
/**
|
||||
The type of boundary between segments.
|
||||
*/
|
||||
@IBInspectable public var segmentBoundaryType: M13ProgressViewSegmentedRingSegmentBoundaryType = .Wedge {
|
||||
didSet {
|
||||
updateAngles()
|
||||
progressUpdate?()
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Property Overrides
|
||||
//-------------------------------
|
||||
|
||||
/**
|
||||
The secondary color of the progress view.
|
||||
*/
|
||||
override public var secondaryColor: UIColor {
|
||||
didSet {
|
||||
indeterminateLayer.strokeColor = nil
|
||||
indeterminateLayer.fillColor = secondaryColor.CGColor
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Protected Variables
|
||||
//-------------------------------
|
||||
|
||||
// The calculated angles of the concentric rings
|
||||
internal var outerRingAngle :CGFloat = 0.1
|
||||
internal var innerRingAngle :CGFloat = 0.1
|
||||
internal var segmentSeparationInnerAngle :CGFloat = 0.1
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Initalization
|
||||
//-------------------------------
|
||||
|
||||
override public init() {
|
||||
super.init()
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
required public init?(coder aDecoder: NSCoder) {
|
||||
if aDecoder.containsValueForKey("numberOfSegments") {
|
||||
numberOfSegments = aDecoder.decodeIntegerForKey("numberOfSegments")
|
||||
}
|
||||
if aDecoder.containsValueForKey("segmentSeparationAngle") {
|
||||
segmentSeparationAngle = CGFloat(aDecoder.decodeDoubleForKey("segmentSeparationAngle"))
|
||||
}
|
||||
if aDecoder.containsValueForKey("segmentBoundaryType") {
|
||||
if let aSegmentBoundaryType = M13ProgressViewSegmentedRingSegmentBoundaryType(rawValue: aDecoder.decodeIntegerForKey("segmentBoundaryType")) {
|
||||
segmentBoundaryType = aSegmentBoundaryType
|
||||
}
|
||||
}
|
||||
|
||||
super.init(coder: aDecoder)
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
override public init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
sharedSetup()
|
||||
}
|
||||
|
||||
internal override func sharedSetup() {
|
||||
super.sharedSetup()
|
||||
|
||||
// Set the defaults.
|
||||
self.clipsToBounds = false
|
||||
layer.backgroundColor = UIColor.clearColor().CGColor
|
||||
|
||||
// Set up the indeterminate layer
|
||||
indeterminateLayer.strokeColor = nil
|
||||
indeterminateLayer.fillColor = secondaryColor.CGColor
|
||||
|
||||
// Set up the progress layer
|
||||
progressLayer.strokeColor = nil
|
||||
progressLayer.fillColor = tintColor.CGColor
|
||||
|
||||
adjustProgressRingWidth()
|
||||
|
||||
// Set the progress animation.
|
||||
weak var weakSelf: M13ProgressSegmentedRing? = self
|
||||
progressUpdate = {() -> Void in
|
||||
|
||||
if let retainedSelf = weakSelf {
|
||||
|
||||
// Draw background
|
||||
retainedSelf.drawSegmentedBackground()
|
||||
|
||||
// Draw progress ring
|
||||
retainedSelf.drawSegmentedProgress()
|
||||
|
||||
// Draw percentage
|
||||
if retainedSelf.percentage && retainedSelf.state == .Normal {
|
||||
retainedSelf.drawPercentage()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Set the indeterminate animation.
|
||||
indeterminateUpdate = {(frameDuration: CFTimeInterval) -> Void in
|
||||
|
||||
if let retainedSelf = weakSelf {
|
||||
|
||||
retainedSelf.hidePercentage()
|
||||
|
||||
// Create parameters to draw progress
|
||||
let startAngle = CGFloat(retainedSelf.indeterminateAnimationAngle)
|
||||
|
||||
let deltaAngle = CGFloat(frameDuration * M_PI)
|
||||
if retainedSelf.progressDirection == .CounterClockwise {
|
||||
// CounterClockwise
|
||||
retainedSelf.indeterminateAnimationAngle -= deltaAngle
|
||||
} else {
|
||||
// Clockwise
|
||||
retainedSelf.indeterminateAnimationAngle += deltaAngle
|
||||
}
|
||||
|
||||
// Draw animated background
|
||||
retainedSelf.drawSegmentedIndeterminate(startAngle, segmentsToDraw: retainedSelf.numberOfSegments)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override func encodeWithCoder(aCoder: NSCoder) {
|
||||
aCoder.encodeInteger(numberOfSegments, forKey: "numberOfSegments")
|
||||
aCoder.encodeDouble(Double(segmentSeparationAngle), forKey: "segmentSeparationAngle")
|
||||
aCoder.encodeInteger(segmentBoundaryType.rawValue, forKey: "segmentBoundaryType")
|
||||
super.encodeWithCoder(aCoder)
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Actions
|
||||
//-------------------------------
|
||||
|
||||
public override func setState(state: M13ProgressViewState, animated: Bool) {
|
||||
super.setState(state, animated: animated)
|
||||
|
||||
// Remove strokeColor animations and assignments that were added during super.setState()
|
||||
progressLayer.removeAnimationForKey("strokeColor")
|
||||
progressLayer.strokeColor = nil
|
||||
indeterminateLayer.removeAnimationForKey("strokeColor")
|
||||
indeterminateLayer.strokeColor = nil
|
||||
|
||||
// Select colors based on state
|
||||
var toColor1: UIColor = tintColor
|
||||
var toColor2: UIColor = secondaryColor
|
||||
switch state {
|
||||
case .Normal:
|
||||
break
|
||||
case .Success:
|
||||
toColor1 = successColor
|
||||
if indeterminate {
|
||||
toColor2 = successColor
|
||||
}
|
||||
break
|
||||
case .Failure:
|
||||
toColor1 = failureColor
|
||||
if indeterminate {
|
||||
toColor2 = failureColor
|
||||
}
|
||||
break
|
||||
}
|
||||
|
||||
if !animated {
|
||||
progressLayer.fillColor = toColor1.CGColor
|
||||
indeterminateLayer.fillColor = toColor2.CGColor
|
||||
} else {
|
||||
let colorAnimation1: CABasicAnimation = CABasicAnimation(keyPath: "fillColor")
|
||||
colorAnimation1.fromValue = progressLayer.backgroundColor!
|
||||
colorAnimation1.fillMode = kCAFillModeForwards
|
||||
colorAnimation1.removedOnCompletion = false
|
||||
colorAnimation1.duration = animationDuration
|
||||
|
||||
let colorAnimation2: CABasicAnimation = CABasicAnimation(keyPath: "fillColor")
|
||||
colorAnimation2.fromValue = indeterminateLayer.backgroundColor!
|
||||
colorAnimation2.fillMode = kCAFillModeForwards
|
||||
colorAnimation2.removedOnCompletion = false
|
||||
colorAnimation2.duration = animationDuration
|
||||
|
||||
colorAnimation1.toValue = toColor1.CGColor
|
||||
progressLayer.addAnimation(colorAnimation1, forKey: "fillColor")
|
||||
progressLayer.fillColor = toColor1.CGColor
|
||||
|
||||
colorAnimation2.toValue = toColor2.CGColor
|
||||
indeterminateLayer.addAnimation(colorAnimation2, forKey: "fillColor")
|
||||
indeterminateLayer.fillColor = toColor2.CGColor
|
||||
}
|
||||
|
||||
setNeedsLayout()
|
||||
progressUpdate?()
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Layout
|
||||
//-------------------------------
|
||||
|
||||
public override func layoutSubviews() {
|
||||
super.layoutSubviews()
|
||||
|
||||
updateAngles()
|
||||
|
||||
// Update progress frame
|
||||
progressUpdate?()
|
||||
}
|
||||
|
||||
internal func updateAngles() {
|
||||
// Calculate the outer ring angle for the progress segment.
|
||||
outerRingAngle = CGFloat(2.0 * M_PI) / CGFloat(numberOfSegments) - segmentSeparationAngle
|
||||
// Calculate the angle gap for the inner ring
|
||||
let radius = maxRadius()
|
||||
segmentSeparationInnerAngle = 2.0 * asin((radius * sin(segmentSeparationAngle / 2.0)) / (radius - CGFloat(progressRingWidth)))
|
||||
// Calculate the inner ring angle for the progress segment.
|
||||
innerRingAngle = CGFloat(2.0 * M_PI) / CGFloat(numberOfSegments) - segmentSeparationInnerAngle
|
||||
}
|
||||
|
||||
public func numberOfFullSegments() -> Int
|
||||
{
|
||||
return Int(floor(progress * CGFloat(numberOfSegments)))
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Draw Functions
|
||||
//-------------------------------
|
||||
|
||||
public func drawSegmentedIndeterminate(startAngle: CGFloat, segmentsToDraw: Int)
|
||||
{
|
||||
// Create parameters to draw background
|
||||
// The background segments are drawn counterclockwise, start with the outer ring, add an arc counterclockwise. Then add the coresponding arc for the inner ring clockwise. Then close the path. The line connecting the two arcs is not needed. From tests it seems to be created automatically.
|
||||
var outerStartAngle = CGFloat(-M_PI_2) + startAngle
|
||||
// Skip half of a separation angle, since the first separation will be centered upward.
|
||||
outerStartAngle -= segmentSeparationAngle / 2.0
|
||||
// Calculate the inner start angle position
|
||||
var innerStartAngle = CGFloat(-M_PI_2) + startAngle
|
||||
innerStartAngle -= segmentSeparationInnerAngle / 2.0 + innerRingAngle
|
||||
|
||||
// Create the path ref that all the paths will be appended
|
||||
let pathListRef = CGPathCreateMutable()
|
||||
|
||||
// Create each segment
|
||||
let center = centerOfCircle()
|
||||
let radius = maxRadius()
|
||||
let radiusInner = radius - CGFloat(progressRingWidth)
|
||||
for (var i = 0; i < segmentsToDraw; ++i) {
|
||||
// Create the outer ring segment
|
||||
let path = UIBezierPath(arcCenter: center, radius: radius, startAngle: outerStartAngle, endAngle: (outerStartAngle - outerRingAngle), clockwise: false)
|
||||
// Create the inner ring segment
|
||||
if (segmentBoundaryType == .Wedge) {
|
||||
path.addArcWithCenter(center, radius: radiusInner, startAngle: (outerStartAngle - outerRingAngle), endAngle: outerStartAngle, clockwise: true)
|
||||
} else if (segmentBoundaryType == .Rectangle) {
|
||||
path.addArcWithCenter(center, radius: radiusInner, startAngle: innerStartAngle, endAngle: (innerStartAngle + innerRingAngle), clockwise: true)
|
||||
}
|
||||
|
||||
path.closePath()
|
||||
// Add the segment to the path ref
|
||||
CGPathAddPath(pathListRef, nil, path.CGPath)
|
||||
|
||||
// Setup for the next segment
|
||||
outerStartAngle -= outerRingAngle + segmentSeparationAngle
|
||||
innerStartAngle -= innerRingAngle + segmentSeparationInnerAngle
|
||||
}
|
||||
|
||||
// Set the path
|
||||
indeterminateLayer.path = pathListRef
|
||||
|
||||
indeterminateLayer.transform = getTransformation()
|
||||
}
|
||||
|
||||
public func drawSegmentedBackground()
|
||||
{
|
||||
let segmentsToDraw = numberOfSegments - numberOfFullSegments()
|
||||
drawSegmentedIndeterminate(0, segmentsToDraw: segmentsToDraw)
|
||||
}
|
||||
|
||||
public func drawSegmentedProgress()
|
||||
{
|
||||
// Create parameters to draw background
|
||||
// The progress segments are drawn clockwise, start with the outer ring, add an arc clockwise. Then add the coresponding arc for the inner ring counterclockwise. Then close the path. The line connecting the two arcs is not needed. From tests it seems to be created automatically.
|
||||
var outerStartAngle = CGFloat(-M_PI_2)
|
||||
// Skip half of a separation angle, since the first separation will be centered upward.
|
||||
outerStartAngle += segmentSeparationAngle / 2.0
|
||||
// Calculate the inner start angle position
|
||||
var innerStartAngle = CGFloat(-M_PI_2)
|
||||
innerStartAngle += segmentSeparationInnerAngle / 2.0 + innerRingAngle
|
||||
|
||||
// Create the path ref that all the paths will be appended
|
||||
let pathListRef = CGPathCreateMutable()
|
||||
|
||||
// Create each segment
|
||||
let center = centerOfCircle()
|
||||
let radius = maxRadius()
|
||||
let radiusInner = radius - CGFloat(progressRingWidth)
|
||||
let stopper = numberOfFullSegments()
|
||||
for (var i = 0; i < stopper; ++i) {
|
||||
// Create the outer ring segment
|
||||
let path = UIBezierPath(arcCenter: center, radius: radius, startAngle: outerStartAngle, endAngle: (outerStartAngle + outerRingAngle), clockwise: true)
|
||||
// Create the inner ring segment
|
||||
if (segmentBoundaryType == .Wedge) {
|
||||
path.addArcWithCenter(center, radius: radiusInner, startAngle: (outerStartAngle + outerRingAngle), endAngle: outerStartAngle, clockwise: false)
|
||||
} else if (segmentBoundaryType == .Rectangle) {
|
||||
path.addArcWithCenter(center, radius: radiusInner, startAngle: innerStartAngle, endAngle: (innerStartAngle - innerRingAngle), clockwise: false)
|
||||
}
|
||||
|
||||
path.closePath()
|
||||
// Add the segment to the path ref
|
||||
CGPathAddPath(pathListRef, nil, path.CGPath)
|
||||
|
||||
// Setup for the next segment
|
||||
outerStartAngle += outerRingAngle + segmentSeparationAngle
|
||||
innerStartAngle += innerRingAngle + segmentSeparationInnerAngle
|
||||
}
|
||||
|
||||
// Set the path
|
||||
progressLayer.path = pathListRef
|
||||
|
||||
progressLayer.transform = getTransformation()
|
||||
}
|
||||
|
||||
public func getTransformation() -> CATransform3D
|
||||
{
|
||||
if progressDirection == .CounterClockwise {
|
||||
let rotation = CATransform3DMakeRotation(CGFloat(M_PI), 0.0, 1.0, 0.0)
|
||||
let x = self.bounds.size.width
|
||||
let translation = CATransform3DMakeTranslation(x, 0, 0)
|
||||
return CATransform3DConcat(rotation, translation)
|
||||
}
|
||||
|
||||
return CATransform3DIdentity
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Other
|
||||
//-------------------------------
|
||||
|
||||
public override func tintColorDidChange() {
|
||||
super.tintColorDidChange()
|
||||
progressLayer.fillColor = tintColor.CGColor
|
||||
progressLayer.strokeColor = nil
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,295 @@
|
||||
//
|
||||
// M13ProgressView.swift
|
||||
// M13ProgressSuite
|
||||
//
|
||||
/*
|
||||
Copyright (c) 2015 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
import UIKit
|
||||
|
||||
/**
|
||||
The possible states a progress view can be in.
|
||||
|
||||
- None: The default state of a progress bar.
|
||||
- Success: The state that shows an action completed successfully.
|
||||
- Failure: The state that shows an action failed to complete.
|
||||
*/
|
||||
public enum M13ProgressViewState: Int, RawRepresentable {
|
||||
/// The default state of a progress bar.
|
||||
case Normal
|
||||
/// The state that shows an action completed successfully.
|
||||
case Success
|
||||
/// The state that shows an action failed to complete.
|
||||
case Failure
|
||||
}
|
||||
|
||||
/**
|
||||
A standardized base upon which to build progress views.
|
||||
*/
|
||||
@IBDesignable
|
||||
public class M13ProgressView: UIView {
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Appearance
|
||||
//-------------------------------
|
||||
|
||||
/**
|
||||
The secondary color of the progress view.
|
||||
*/
|
||||
@IBInspectable public var secondaryColor: UIColor = UIColor.lightGrayColor()
|
||||
|
||||
/**
|
||||
The primary color when the progress view is in the success state.
|
||||
*/
|
||||
@IBInspectable public var successColor: UIColor = UIColor(red: 63.0/255.0, green: 226.0/255.0, blue: 80.0/255.0, alpha: 1.0)
|
||||
|
||||
/**
|
||||
The primary color when the progress view is in the failure state.
|
||||
*/
|
||||
@IBInspectable public var failureColor: UIColor = UIColor(red: 249.0/255.0, green: 37.0/255.0, blue: 0.0, alpha: 1.0)
|
||||
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Properties
|
||||
//-------------------------------
|
||||
|
||||
/**
|
||||
Wether or not the progress view is in an indeterminate state.
|
||||
*/
|
||||
@IBInspectable public var indeterminate: Bool = false {
|
||||
didSet {
|
||||
if indeterminate && indeterminateDisplayLink == nil {
|
||||
// Create the display link
|
||||
indeterminateDisplayLink = CADisplayLink(target: self, selector: "animateIndeterminate:")
|
||||
indeterminateDisplayLink?.addToRunLoop(NSRunLoop.mainRunLoop(), forMode: NSRunLoopCommonModes)
|
||||
} else if !indeterminate && indeterminateDisplayLink != nil {
|
||||
// Remove the display link as the animation is not needed anymore.
|
||||
indeterminateDisplayLink?.invalidate()
|
||||
indeterminateDisplayLink = nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
The duration of the animations performed by the progress view in seconds.
|
||||
*/
|
||||
@IBInspectable public var animationDuration: NSTimeInterval = 0.3
|
||||
|
||||
/**
|
||||
The duration of the indeterminate animation loop in seconds.
|
||||
*/
|
||||
@IBInspectable public var indeterminateAnimationDuration: NSTimeInterval = 2.0
|
||||
|
||||
/**
|
||||
The progress displayed by the progress view.
|
||||
*/
|
||||
@IBInspectable public private(set) var progress: CGFloat = 0.0
|
||||
|
||||
/**
|
||||
The current state of the progress view
|
||||
*/
|
||||
@IBInspectable public private(set) var state: M13ProgressViewState = M13ProgressViewState.Normal
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Animation
|
||||
//-------------------------------
|
||||
|
||||
/**
|
||||
The progress at the beginning of the animation.
|
||||
*/
|
||||
private var progressFromValue: CGFloat = 0.0
|
||||
|
||||
/**
|
||||
The progress at the end of the animation.
|
||||
*/
|
||||
private var progressToValue: CGFloat = 0.0
|
||||
|
||||
/**
|
||||
The start time of the animation.
|
||||
*/
|
||||
private var animationStartTime: CFTimeInterval?
|
||||
|
||||
/**
|
||||
The display link controlling progress animations.
|
||||
*/
|
||||
private var determinateDisplayLink: CADisplayLink?
|
||||
|
||||
/**
|
||||
The display link controlling indeterminate animations.
|
||||
*/
|
||||
private var indeterminateDisplayLink: CADisplayLink?
|
||||
|
||||
/**
|
||||
The block of code that updates the user interface when the progress is set, animated or not. The changes made should reflect the current value of the progress variable.
|
||||
|
||||
- note: If capturing variable that is linked to `self`, be sure to do a "weak self" conversion.
|
||||
*/
|
||||
internal var progressUpdate: (() -> Void)?
|
||||
|
||||
/**
|
||||
The block of code that update the user interface during the indeterminate state. This code is tied into a CADisplayLink that will run this code each frame.
|
||||
|
||||
- note: If capturing variable that is linked to `self`, be sure to do a "weak self" conversion.
|
||||
*/
|
||||
internal var indeterminateUpdate: ((frameDuration: CFTimeInterval) -> Void)?
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Initalization
|
||||
//-------------------------------
|
||||
|
||||
public init() {
|
||||
super.init(frame: CGRectZero)
|
||||
}
|
||||
|
||||
required public init?(coder aDecoder: NSCoder) {
|
||||
if aDecoder.containsValueForKey("indeterminate") {
|
||||
indeterminate = aDecoder.decodeBoolForKey("indeterminate")
|
||||
}
|
||||
if aDecoder.containsValueForKey("animationDuration") {
|
||||
animationDuration = aDecoder.decodeDoubleForKey("animationDuration")
|
||||
}
|
||||
if aDecoder.containsValueForKey("progress") {
|
||||
progress = CGFloat(aDecoder.decodeFloatForKey("progress"))
|
||||
}
|
||||
if aDecoder.containsValueForKey("state") {
|
||||
if let aState = M13ProgressViewState(rawValue: aDecoder.decodeIntegerForKey("state")) {
|
||||
state = aState
|
||||
}
|
||||
}
|
||||
if let color: UIColor = aDecoder.decodeObjectOfClass(UIColor.self, forKey: "secondaryColor") {
|
||||
secondaryColor = color
|
||||
}
|
||||
if let color: UIColor = aDecoder.decodeObjectOfClass(UIColor.self, forKey: "successColor") {
|
||||
successColor = color
|
||||
}
|
||||
if let color: UIColor = aDecoder.decodeObjectOfClass(UIColor.self, forKey: "failureColor") {
|
||||
failureColor = color
|
||||
}
|
||||
|
||||
super.init(coder: aDecoder)
|
||||
}
|
||||
|
||||
override init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
}
|
||||
|
||||
|
||||
public override func encodeWithCoder(aCoder: NSCoder) {
|
||||
aCoder.encodeObject(secondaryColor, forKey: "secondaryColor")
|
||||
aCoder.encodeObject(successColor, forKey: "successColor")
|
||||
aCoder.encodeObject(failureColor, forKey: "failureColor")
|
||||
aCoder.encodeBool(indeterminate, forKey: "indeterminate")
|
||||
aCoder.encodeDouble(animationDuration, forKey: "animationDuration")
|
||||
aCoder.encodeFloat(Float(progress), forKey: "progress")
|
||||
aCoder.encodeInteger(state.rawValue, forKey: "state")
|
||||
super.encodeWithCoder(aCoder)
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Actions
|
||||
//-------------------------------
|
||||
|
||||
/**
|
||||
Set the progress displayed in the progress view.
|
||||
|
||||
- parameter progress: The progress to be displayed by the progress view.
|
||||
- parameter animated: Wether or not to animate the change.
|
||||
*/
|
||||
public func setProgress(progress: CGFloat, animated: Bool) {
|
||||
|
||||
if animated == false {
|
||||
// Remove the display link as the animation is not needed anymore.
|
||||
determinateDisplayLink?.invalidate()
|
||||
determinateDisplayLink = nil
|
||||
animationStartTime = nil
|
||||
// Update the progress
|
||||
self.progress = progress
|
||||
progressUpdate?()
|
||||
} else {
|
||||
// If the display link does not exist, create it.
|
||||
if determinateDisplayLink == nil {
|
||||
determinateDisplayLink = CADisplayLink(target: self, selector: "animateProgress:")
|
||||
determinateDisplayLink?.addToRunLoop(NSRunLoop.mainRunLoop(), forMode: NSRunLoopCommonModes)
|
||||
}
|
||||
|
||||
// Update the values for the animation.
|
||||
progressFromValue = self.progress
|
||||
progressToValue = progress > 1.0 ? 1.0 : progress
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
Updates the progress in sync with the `CADisplayLink`, such that any changes are animated.
|
||||
|
||||
- parameter displayLink: The display link that is asking to calculate changes before the next render cycle.
|
||||
*/
|
||||
internal func animateProgress(displayLink: CADisplayLink) {
|
||||
|
||||
// Set the animation start time on the first displayed frame. The timestamp will read 0.0 until the first frame.
|
||||
if animationStartTime == nil {
|
||||
animationStartTime = displayLink.timestamp
|
||||
return
|
||||
}
|
||||
|
||||
weak var weakSelf: M13ProgressView? = self
|
||||
dispatch_async(dispatch_get_main_queue()) { () -> Void in
|
||||
if let weakSelf = weakSelf {
|
||||
let dt: Double = (weakSelf.determinateDisplayLink!.timestamp - weakSelf.animationStartTime!) / weakSelf.animationDuration
|
||||
if dt >= 1.0 {
|
||||
// The animation is complete.
|
||||
// Order is important! Otherwise concurrency will cause errors, because setProgress: will detect an animation in progress and try to stop it by itself. Once over one, set to actual progress amount. Animation is over.
|
||||
weakSelf.determinateDisplayLink?.invalidate()
|
||||
weakSelf.determinateDisplayLink = nil
|
||||
weakSelf.setProgress(weakSelf.progressToValue, animated: false)
|
||||
} else {
|
||||
//Update the progress and the display
|
||||
weakSelf.progress = weakSelf.progressFromValue + (CGFloat(dt) * (weakSelf.progressToValue - weakSelf.progressFromValue))
|
||||
weakSelf.progressUpdate?()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
Updates the indeterminate animation in sync with the `CADisplayLink`, such that any changes are animated.
|
||||
|
||||
- parameter displayLink: The display link that is asking to calculate changes before the next render cycle.
|
||||
*/
|
||||
internal func animateIndeterminate(displayLink: CADisplayLink) {
|
||||
weak var weakSelf: M13ProgressView? = self
|
||||
dispatch_async(dispatch_get_main_queue()) { () -> Void in
|
||||
weakSelf?.indeterminateUpdate?(frameDuration: displayLink.duration)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
Perform the given action.
|
||||
|
||||
- note: Not all progress views support all actions.
|
||||
- seealso: `M13ProgressViewState`
|
||||
|
||||
- parameter action: The action to perform.
|
||||
- parameter animated: Wether or not to animate the change.
|
||||
*/
|
||||
public func setState(state: M13ProgressViewState, animated: Bool) {
|
||||
self.state = state
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
// MARK: Layout and Drawing
|
||||
//-------------------------------
|
||||
|
||||
public override func layoutSubviews() {
|
||||
super.layoutSubviews()
|
||||
// Just update the progress in case it is not currently animating. The indeterminate animation will update on the next frame.
|
||||
progressUpdate?()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,52 +0,0 @@
|
||||
//
|
||||
// M13ProgressView.h
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
typedef enum {
|
||||
/**Resets the action and returns the progress view to its normal state.*/
|
||||
M13ProgressViewActionNone,
|
||||
/**The progress view shows success.*/
|
||||
M13ProgressViewActionSuccess,
|
||||
/**The progress view shows failure.*/
|
||||
M13ProgressViewActionFailure
|
||||
} M13ProgressViewAction;
|
||||
|
||||
/**A standardized base upon which to build progress views for applications. This allows one to use any subclass progress view in any component that use this standard.*/
|
||||
@interface M13ProgressView : UIView
|
||||
|
||||
/**@name Appearance*/
|
||||
/**The primary color of the `M13ProgressView`.*/
|
||||
@property (nonatomic, retain) UIColor *primaryColor;
|
||||
/**The secondary color of the `M13ProgressView`.*/
|
||||
@property (nonatomic, retain) UIColor *secondaryColor;
|
||||
|
||||
/**@name Properties*/
|
||||
/**Wether or not the progress view is indeterminate.*/
|
||||
@property (nonatomic, assign) BOOL indeterminate;
|
||||
/**The durations of animations in seconds.*/
|
||||
@property (nonatomic, assign) CGFloat animationDuration;
|
||||
/**The progress displayed to the user.*/
|
||||
@property (nonatomic, readonly) CGFloat progress;
|
||||
|
||||
/**@name Actions*/
|
||||
/**Set the progress of the `M13ProgressView`.
|
||||
@param progress The progress to show on the progress view.
|
||||
@param animated Wether or not to animate the progress change.*/
|
||||
- (void)setProgress:(CGFloat)progress animated:(BOOL)animated;
|
||||
/**Perform the given action if defined. Usually showing success or failure.
|
||||
@param action The action to perform.
|
||||
@param animated Wether or not to animate the change*/
|
||||
- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated;
|
||||
|
||||
@end
|
||||
@@ -1,37 +0,0 @@
|
||||
//
|
||||
// M13ProgressView.m
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import "M13ProgressView.h"
|
||||
|
||||
@implementation M13ProgressView
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
// Initialization code
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)setProgress:(CGFloat)progress animated:(BOOL)animated
|
||||
{
|
||||
_progress = progress;
|
||||
}
|
||||
|
||||
- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated
|
||||
{
|
||||
//To be overriden in subclasses
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,51 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewBar.h
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import "M13ProgressView.h"
|
||||
|
||||
typedef enum {
|
||||
M13ProgressViewBarPercentagePositionLeft,
|
||||
M13ProgressViewBarPercentagePositionRight,
|
||||
M13ProgressViewBarPercentagePositionTop,
|
||||
M13ProgressViewBarPercentagePositionBottom,
|
||||
} M13ProgressViewBarPercentagePosition;
|
||||
|
||||
typedef enum {
|
||||
M13ProgressViewBarProgressDirectionLeftToRight,
|
||||
M13ProgressViewBarProgressDirectionBottomToTop,
|
||||
M13ProgressViewBarProgressDirectionRightToLeft,
|
||||
M13ProgressViewBarProgressDirectionTopToBottom
|
||||
} M13ProgressViewBarProgressDirection;
|
||||
|
||||
/**A replacement for UIProgressBar.*/
|
||||
@interface M13ProgressViewBar : M13ProgressView
|
||||
|
||||
/**@name Appearance*/
|
||||
/**The direction of progress. (What direction the fill proceeds in.)*/
|
||||
@property (nonatomic, assign) M13ProgressViewBarProgressDirection progressDirection;
|
||||
/**The thickness of the progress bar.*/
|
||||
@property (nonatomic, assign) CGFloat progressBarThickness;
|
||||
/**The corner radius of the progress bar.*/
|
||||
@property (nonatomic, assign) CGFloat progressBarCornerRadius;
|
||||
/**@name Actions*/
|
||||
/**The color the bar changes to for the success action.*/
|
||||
@property (nonatomic, retain) UIColor *successColor;
|
||||
/**The color the bar changes to for the failure action.*/
|
||||
@property (nonatomic, retain) UIColor *failureColor;
|
||||
/**@name Percentage*/
|
||||
/**Wether or not to show percentage text. If shown exterior to the progress bar, the progress bar is shifted to make room for the text.*/
|
||||
@property (nonatomic, assign) BOOL showPercentage;
|
||||
/**The location of the percentage in comparison to the progress bar.*/
|
||||
@property (nonatomic, assign) M13ProgressViewBarPercentagePosition percentagePosition;
|
||||
|
||||
@end
|
||||
@@ -1,637 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewBar.m
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import "M13ProgressViewBar.h"
|
||||
|
||||
@interface M13ProgressViewBar ()
|
||||
/**The number formatter to display the progress percentage.*/
|
||||
@property (nonatomic, retain) NSNumberFormatter *percentageFormatter;
|
||||
/**The label that shows the percentage.*/
|
||||
@property (nonatomic, retain) CATextLayer *percentageLabel;
|
||||
/**The start progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationFromValue;
|
||||
/**The end progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationToValue;
|
||||
/**The start time interval for the animaiton.*/
|
||||
@property (nonatomic, assign) CFTimeInterval animationStartTime;
|
||||
/**Link to the display to keep animations in sync.*/
|
||||
@property (nonatomic, strong) CADisplayLink *displayLink;
|
||||
/**The view of the progress bar.*/
|
||||
@property (nonatomic, retain) UIView *progressBar;
|
||||
/**The layer that displays progress in the progress bar.*/
|
||||
@property (nonatomic, retain) CAShapeLayer *progressLayer;
|
||||
/**The layer that is used to animate indeterminate progress.*/
|
||||
@property (nonatomic, retain) CALayer *indeterminateLayer;
|
||||
/**The action currently being performed.*/
|
||||
@property (nonatomic, assign) M13ProgressViewAction currentAction;
|
||||
@end
|
||||
|
||||
@implementation M13ProgressViewBar
|
||||
|
||||
#pragma mark Initalization and setup
|
||||
|
||||
- (id)init
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(NSCoder *)aDecoder
|
||||
{
|
||||
self = [super initWithCoder:aDecoder];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)setup
|
||||
{
|
||||
//Set own background color
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
|
||||
//Set defauts
|
||||
self.animationDuration = .3;
|
||||
_progressDirection = M13ProgressViewBarProgressDirectionLeftToRight;
|
||||
_progressBarThickness = 2;
|
||||
_progressBarCornerRadius = _progressBarThickness / 2.0;
|
||||
_percentagePosition = M13ProgressViewBarPercentagePositionRight;
|
||||
_showPercentage = YES;
|
||||
|
||||
//Set default colors
|
||||
self.primaryColor = [UIColor colorWithRed:0 green:122/255.0 blue:1.0 alpha:1.0];
|
||||
self.secondaryColor = [UIColor colorWithRed:181/255.0 green:182/255.0 blue:183/255.0 alpha:1.0];
|
||||
_successColor = [UIColor colorWithRed:63.0f/255.0f green:226.0f/255.0f blue:80.0f/255.0f alpha:1];
|
||||
_failureColor = [UIColor colorWithRed:249.0f/255.0f green:37.0f/255.0f blue:0 alpha:1];
|
||||
|
||||
//Set up the number formatter
|
||||
_percentageFormatter = [[NSNumberFormatter alloc] init];
|
||||
_percentageFormatter.numberStyle = NSNumberFormatterPercentStyle;
|
||||
|
||||
//Progress View
|
||||
_progressBar = [[UIView alloc] init];
|
||||
_progressBar.backgroundColor = self.secondaryColor;
|
||||
_progressBar.layer.cornerRadius = _progressBarCornerRadius;
|
||||
_progressBar.clipsToBounds = YES;
|
||||
[self addSubview:_progressBar];
|
||||
|
||||
//ProgressLayer
|
||||
_progressLayer = [CAShapeLayer layer];
|
||||
_progressLayer.strokeColor = self.primaryColor.CGColor;
|
||||
_progressLayer.lineWidth = _progressBarThickness;
|
||||
_progressLayer.lineCap = kCALineCapRound;
|
||||
[_progressBar.layer addSublayer:_progressLayer];
|
||||
|
||||
//Percentage
|
||||
_percentageLabel = [CATextLayer layer];
|
||||
_percentageLabel.foregroundColor = self.primaryColor.CGColor;
|
||||
_percentageLabel.alignmentMode = kCAAlignmentCenter;
|
||||
UILabel *temp = [[UILabel alloc] init];
|
||||
_percentageLabel.font = (__bridge CFTypeRef)temp.font;
|
||||
_percentageLabel.contentsScale = [UIScreen mainScreen].scale;
|
||||
[self.layer addSublayer:_percentageLabel];
|
||||
|
||||
//IndeterminateLayer
|
||||
_indeterminateLayer = [CALayer layer];
|
||||
_indeterminateLayer.backgroundColor = self.primaryColor.CGColor;
|
||||
_indeterminateLayer.cornerRadius = _progressBarCornerRadius;
|
||||
_indeterminateLayer.opacity = 0;
|
||||
[_progressBar.layer addSublayer:_indeterminateLayer];
|
||||
|
||||
//Layout
|
||||
[self layoutSubviews];
|
||||
}
|
||||
|
||||
#pragma mark Appearance
|
||||
|
||||
- (void)setPrimaryColor:(UIColor *)primaryColor
|
||||
{
|
||||
[super setPrimaryColor:primaryColor];
|
||||
_percentageLabel.foregroundColor = self.primaryColor.CGColor;
|
||||
_progressLayer.strokeColor = self.primaryColor.CGColor;
|
||||
_indeterminateLayer.backgroundColor = self.primaryColor.CGColor;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setSecondaryColor:(UIColor *)secondaryColor
|
||||
{
|
||||
[super setSecondaryColor:secondaryColor];
|
||||
_progressBar.backgroundColor = self.secondaryColor;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setSuccessColor:(UIColor *)successColor
|
||||
{
|
||||
_successColor = successColor;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setFailureColor:(UIColor *)failureColor
|
||||
{
|
||||
_failureColor = failureColor;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setShowPercentage:(BOOL)showPercentage
|
||||
{
|
||||
_showPercentage = showPercentage;
|
||||
_percentageLabel.hidden = !_showPercentage;
|
||||
[self layoutSubviews];
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setPercentagePosition:(M13ProgressViewBarPercentagePosition)percentagePosition
|
||||
{
|
||||
_percentagePosition = percentagePosition;
|
||||
[self layoutSubviews];
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setProgressDirection:(M13ProgressViewBarProgressDirection)progressDirection
|
||||
{
|
||||
_progressDirection = progressDirection;
|
||||
[self layoutSubviews];
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setProgressBarThickness:(CGFloat)progressBarThickness
|
||||
{
|
||||
_progressBarThickness = progressBarThickness;
|
||||
//Update the layer size
|
||||
[self setNeedsDisplay];
|
||||
//Update strokeWidth
|
||||
_progressLayer.lineWidth = progressBarThickness;
|
||||
[self invalidateIntrinsicContentSize];
|
||||
}
|
||||
|
||||
- (void)setProgressBarCornerRadius:(CGFloat)progressBarCornerRadius
|
||||
{
|
||||
_progressBarCornerRadius = progressBarCornerRadius;
|
||||
|
||||
// Update the layer size
|
||||
[self setNeedsDisplay];
|
||||
|
||||
// Update corner radius for layers
|
||||
_progressBar.layer.cornerRadius = _progressBarCornerRadius;
|
||||
_indeterminateLayer.cornerRadius = _progressBarCornerRadius;
|
||||
[self invalidateIntrinsicContentSize];
|
||||
}
|
||||
|
||||
#pragma mark Actions
|
||||
|
||||
- (void)setProgress:(CGFloat)progress animated:(BOOL)animated
|
||||
{
|
||||
if (animated == NO) {
|
||||
if (_displayLink) {
|
||||
//Kill running animations
|
||||
[_displayLink invalidate];
|
||||
_displayLink = nil;
|
||||
}
|
||||
[super setProgress:progress animated:NO];
|
||||
[self setNeedsDisplay];
|
||||
} else {
|
||||
_animationStartTime = CACurrentMediaTime();
|
||||
_animationFromValue = self.progress;
|
||||
_animationToValue = progress;
|
||||
if (!_displayLink) {
|
||||
//Create and setup the display link
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(animateProgress:)];
|
||||
[self.displayLink addToRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
|
||||
} /*else {
|
||||
//Reuse the current display link
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
- (void)animateProgress:(CADisplayLink *)displayLink
|
||||
{
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
CGFloat dt = (displayLink.timestamp - _animationStartTime) / self.animationDuration;
|
||||
if (dt >= 1.0) {
|
||||
//Order is important! Otherwise concurrency will cause errors, because setProgress: will detect an animation in progress and try to stop it by itself. Once over one, set to actual progress amount. Animation is over.
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = nil;
|
||||
[super setProgress:_animationToValue animated:NO];
|
||||
[self setNeedsDisplay];
|
||||
return;
|
||||
}
|
||||
|
||||
//Set progress
|
||||
[super setProgress:_animationFromValue + dt * (_animationToValue - _animationFromValue) animated:YES];
|
||||
[self setNeedsDisplay];
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated
|
||||
{
|
||||
if (action == M13ProgressViewActionNone && _currentAction != M13ProgressViewActionNone) {
|
||||
_currentAction = action;
|
||||
_percentageLabel.string = [_percentageFormatter stringFromNumber:[NSNumber numberWithFloat:self.progress]];
|
||||
[self setNeedsDisplay];
|
||||
[CATransaction begin];
|
||||
CABasicAnimation *barAnimation = [self barColorAnimation];
|
||||
CABasicAnimation *textAnimation = [self textColorAnimation];
|
||||
CABasicAnimation *indeterminateAnimation = [self indeterminateColorAnimation];
|
||||
barAnimation.fromValue = (id)_progressLayer.strokeColor;
|
||||
barAnimation.toValue = (id)self.primaryColor.CGColor;
|
||||
textAnimation.fromValue = (id)_percentageLabel.foregroundColor;
|
||||
textAnimation.toValue = (id)self.primaryColor.CGColor;
|
||||
indeterminateAnimation.fromValue = (id)_indeterminateLayer.backgroundColor;
|
||||
indeterminateAnimation.toValue = (id)self.primaryColor.CGColor;
|
||||
[_progressLayer addAnimation:barAnimation forKey:@"strokeColor"];
|
||||
[_percentageLabel addAnimation:textAnimation forKey:@"foregroundLayer"];
|
||||
[_indeterminateLayer addAnimation:indeterminateAnimation forKey:@"backgroundColor"];
|
||||
[CATransaction commit];
|
||||
} else if (action == M13ProgressViewActionSuccess && _currentAction != M13ProgressViewActionSuccess) {
|
||||
_currentAction = action;
|
||||
_percentageLabel.string = @"✓";
|
||||
[self setNeedsDisplay];
|
||||
[CATransaction begin];
|
||||
CABasicAnimation *barAnimation = [self barColorAnimation];
|
||||
CABasicAnimation *textAnimation = [self textColorAnimation];
|
||||
CABasicAnimation *indeterminateAnimation = [self indeterminateColorAnimation];
|
||||
barAnimation.fromValue = (id)_progressLayer.strokeColor;
|
||||
barAnimation.toValue = (id)_successColor.CGColor;
|
||||
textAnimation.fromValue = (id)_percentageLabel.foregroundColor;
|
||||
textAnimation.toValue = (id)_successColor.CGColor;
|
||||
indeterminateAnimation.fromValue = (id)_indeterminateLayer.backgroundColor;
|
||||
indeterminateAnimation.toValue = (id)_successColor.CGColor;
|
||||
[_progressLayer addAnimation:barAnimation forKey:@"strokeColor"];
|
||||
[_percentageLabel addAnimation:textAnimation forKey:@"foregroundLayer"];
|
||||
[_indeterminateLayer addAnimation:indeterminateAnimation forKey:@"backgroundColor"];
|
||||
[CATransaction commit];
|
||||
} else if (action == M13ProgressViewActionFailure && _currentAction != M13ProgressViewActionFailure) {
|
||||
_currentAction = action;
|
||||
_percentageLabel.string = @"✕";
|
||||
[self setNeedsDisplay];
|
||||
[CATransaction begin];
|
||||
CABasicAnimation *barAnimation = [self barColorAnimation];
|
||||
CABasicAnimation *textAnimation = [self textColorAnimation];
|
||||
CABasicAnimation *indeterminateAnimation = [self indeterminateColorAnimation];
|
||||
barAnimation.fromValue = (id)_progressLayer.strokeColor;
|
||||
barAnimation.toValue = (id)_failureColor.CGColor;
|
||||
textAnimation.fromValue = (id)_percentageLabel.foregroundColor;
|
||||
textAnimation.toValue = (id)_failureColor.CGColor;
|
||||
indeterminateAnimation.fromValue = (id)_indeterminateLayer.backgroundColor;
|
||||
indeterminateAnimation.toValue = (id)_failureColor.CGColor;
|
||||
[_progressLayer addAnimation:barAnimation forKey:@"strokeColor"];
|
||||
[_percentageLabel addAnimation:textAnimation forKey:@"foregroundLayer"];
|
||||
[_indeterminateLayer addAnimation:indeterminateAnimation forKey:@"backgroundColor"];
|
||||
[CATransaction commit];
|
||||
}
|
||||
}
|
||||
|
||||
- (CABasicAnimation *)barColorAnimation
|
||||
{
|
||||
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"strokeColor"];
|
||||
animation.duration = 2 * self.animationDuration;
|
||||
animation.repeatCount = 1;
|
||||
//Prevent the animation from resetting
|
||||
animation.fillMode = kCAFillModeForwards;
|
||||
animation.removedOnCompletion = NO;
|
||||
return animation;
|
||||
}
|
||||
|
||||
- (CABasicAnimation *)textColorAnimation
|
||||
{
|
||||
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"foregroundColor"];
|
||||
animation.duration = 2 * self.animationDuration;
|
||||
animation.repeatCount = 1;
|
||||
//Prevent the animation from resetting
|
||||
animation.fillMode = kCAFillModeForwards;
|
||||
animation.removedOnCompletion = NO;
|
||||
return animation;
|
||||
}
|
||||
|
||||
- (CABasicAnimation *)indeterminateColorAnimation
|
||||
{
|
||||
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"backgroundColor"];
|
||||
animation.duration = 2 * self.animationDuration;
|
||||
animation.repeatCount = 1;
|
||||
//Prevent the animation from resetting
|
||||
animation.fillMode = kCAFillModeForwards;
|
||||
animation.removedOnCompletion = NO;
|
||||
return animation;
|
||||
}
|
||||
|
||||
- (void)setIndeterminate:(BOOL)indeterminate
|
||||
{
|
||||
[super setIndeterminate:indeterminate];
|
||||
if (self.indeterminate == YES) {
|
||||
//show the indeterminate view
|
||||
_indeterminateLayer.opacity = 1;
|
||||
_progressLayer.opacity = 0;
|
||||
//Create the animation
|
||||
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];
|
||||
animation.duration = 5 * self.animationDuration;
|
||||
animation.repeatCount = HUGE_VALF;
|
||||
animation.removedOnCompletion = YES;
|
||||
//Set the animation control points
|
||||
if (_progressDirection == M13ProgressViewBarProgressDirectionLeftToRight) {
|
||||
animation.fromValue = [NSValue valueWithCGPoint:CGPointMake(-_indeterminateLayer.frame.size.width, 0)];
|
||||
animation.toValue = [NSValue valueWithCGPoint:CGPointMake(_indeterminateLayer.frame.size.width + _progressBar.bounds.size.width, 0)];
|
||||
} else if (_progressDirection == M13ProgressViewBarProgressDirectionRightToLeft) {
|
||||
animation.fromValue = [NSValue valueWithCGPoint:CGPointMake(_indeterminateLayer.frame.size.width + _progressBar.bounds.size.width, 0)];
|
||||
animation.toValue = [NSValue valueWithCGPoint:CGPointMake(-_indeterminateLayer.frame.size.width, 0)];
|
||||
} else if (_progressDirection == M13ProgressViewBarProgressDirectionBottomToTop) {
|
||||
animation.fromValue = [NSValue valueWithCGPoint:CGPointMake(0, _progressBar.bounds.size.height + _indeterminateLayer.frame.size.height)];
|
||||
animation.toValue = [NSValue valueWithCGPoint:CGPointMake(0, -_indeterminateLayer.frame.size.height)];
|
||||
} else if (_progressDirection == M13ProgressViewBarProgressDirectionTopToBottom) {
|
||||
animation.toValue = [NSValue valueWithCGPoint:CGPointMake(0, _progressBar.bounds.size.height + _indeterminateLayer.frame.size.height)];
|
||||
animation.fromValue = [NSValue valueWithCGPoint:CGPointMake(0, -_indeterminateLayer.frame.size.height)];
|
||||
}
|
||||
[_indeterminateLayer addAnimation:animation forKey:@"position"];
|
||||
_percentageLabel.string = @"∞";
|
||||
} else {
|
||||
//Hide the indeterminate view
|
||||
_indeterminateLayer.opacity = 0;
|
||||
_progressLayer.opacity = 1;
|
||||
//Remove all animations
|
||||
[_indeterminateLayer removeAnimationForKey:@"position"];
|
||||
//Reset progress text
|
||||
_percentageLabel.string = [_percentageFormatter stringFromNumber:[NSNumber numberWithFloat:self.progress]];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark Layout
|
||||
|
||||
- (void)layoutSubviews
|
||||
{
|
||||
[super layoutSubviews];
|
||||
|
||||
if (_showPercentage) {
|
||||
//If the percentage is shown, the layout calculation must take the label frame into account.
|
||||
CGRect labelFrame = CGRectZero;
|
||||
CGRect progressFrame = CGRectZero;
|
||||
CGFloat labelProgressBufferDistance = _progressBarThickness * 4;
|
||||
|
||||
//Calculate progress bar and label size. The bar is long along its direction of travel. The direction perpendicular to travel is the thickness.
|
||||
if (_progressDirection == M13ProgressViewBarProgressDirectionLeftToRight || _progressDirection == M13ProgressViewBarProgressDirectionRightToLeft) {
|
||||
|
||||
//Calculate the bar's and label's position
|
||||
if (_percentagePosition == M13ProgressViewBarPercentagePositionBottom) {
|
||||
//Calculate the sizes
|
||||
progressFrame.size = CGSizeMake(self.bounds.size.width, _progressBarThickness);
|
||||
labelFrame.size = CGSizeMake(self.bounds.size.width, self.bounds.size.height - labelProgressBufferDistance - progressFrame.size.height);
|
||||
//Align the bar with the top of self
|
||||
progressFrame.origin = CGPointMake(0, 0);
|
||||
//Align the label with the bottom of self
|
||||
labelFrame.origin = CGPointMake(0, labelProgressBufferDistance + progressFrame.size.height);
|
||||
//Set frames of progress and label
|
||||
_progressBar.frame = progressFrame;
|
||||
_percentageLabel.frame = labelFrame;
|
||||
//Set label font
|
||||
UIFont *font = [UIFont fontWithName:((__bridge UIFont*)_percentageLabel.font).fontName size:[self maximumFontSizeThatFitsInRect:labelFrame]];
|
||||
_percentageLabel.font = (__bridge CFTypeRef)font;
|
||||
_percentageLabel.fontSize = font.pointSize;
|
||||
} else if (_percentagePosition == M13ProgressViewBarPercentagePositionTop) {
|
||||
//Calculate the sizes
|
||||
progressFrame.size = CGSizeMake(self.bounds.size.width, _progressBarThickness);
|
||||
labelFrame.size = CGSizeMake(self.bounds.size.width, self.bounds.size.height - labelProgressBufferDistance - progressFrame.size.height);
|
||||
//Align the bar with the bottom of self
|
||||
progressFrame.origin = CGPointMake(0, self.bounds.size.height - progressFrame.size.height);
|
||||
//Align the label with the top of self
|
||||
labelFrame.origin = CGPointMake(0, 0);
|
||||
//Set the frames of progress and label
|
||||
_progressBar.frame = progressFrame;
|
||||
_percentageLabel.frame = labelFrame;
|
||||
//Set the label font
|
||||
UIFont *font = [UIFont fontWithName:((__bridge UIFont*)_percentageLabel.font).fontName size:[self maximumFontSizeThatFitsInRect:labelFrame]];
|
||||
_percentageLabel.font = (__bridge CFTypeRef)font;
|
||||
_percentageLabel.fontSize = font.pointSize;
|
||||
|
||||
} else if (_percentagePosition == M13ProgressViewBarPercentagePositionLeft) {
|
||||
//Calculate sizes.
|
||||
labelFrame.size = [self maximumSizeForFontSizeThatFitsInRect:CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height)];
|
||||
progressFrame.size = CGSizeMake(self.bounds.size.width - labelFrame.size.width - labelProgressBufferDistance, _progressBarThickness);
|
||||
//Align the label to the left
|
||||
labelFrame.origin = CGPointMake(0, 0);
|
||||
progressFrame.origin = CGPointMake(labelFrame.size.width + labelProgressBufferDistance, (self.bounds.size.height / 2.0) - (_progressBarThickness / 2.0));
|
||||
//Set the frames
|
||||
_progressBar.frame = progressFrame;
|
||||
_percentageLabel.frame = labelFrame;
|
||||
//Set the font size
|
||||
UIFont *font = [UIFont fontWithName:((__bridge UIFont*)_percentageLabel.font).fontName size:[self maximumFontSizeThatFitsInRect:labelFrame]];
|
||||
_percentageLabel.font = (__bridge CFTypeRef)font;
|
||||
_percentageLabel.fontSize = font.pointSize;
|
||||
|
||||
} else if (_percentagePosition == M13ProgressViewBarPercentagePositionRight) {
|
||||
//Calculate sizes.
|
||||
labelFrame.size = [self maximumSizeForFontSizeThatFitsInRect:CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height)];
|
||||
progressFrame.size = CGSizeMake(self.bounds.size.width - labelFrame.size.width - labelProgressBufferDistance, _progressBarThickness);
|
||||
//Align the label to the right
|
||||
progressFrame.origin = CGPointMake(0, (self.bounds.size.height / 2.0) - (_progressBarThickness / 2.0));
|
||||
labelFrame.origin = CGPointMake(progressFrame.size.width + labelProgressBufferDistance, 0);
|
||||
//Set the frames
|
||||
_progressBar.frame = progressFrame;
|
||||
_percentageLabel.frame = labelFrame;
|
||||
//Set the font size
|
||||
UIFont *font = [UIFont fontWithName:((__bridge UIFont*)_percentageLabel.font).fontName size:[self maximumFontSizeThatFitsInRect:labelFrame]];
|
||||
_percentageLabel.font = (__bridge CFTypeRef)font;
|
||||
_percentageLabel.fontSize = font.pointSize;
|
||||
}
|
||||
|
||||
} else if (_progressDirection == M13ProgressViewBarProgressDirectionBottomToTop || _progressDirection == M13ProgressViewBarProgressDirectionTopToBottom) {
|
||||
|
||||
//Calculate the bar's and label's position
|
||||
if (_percentagePosition == M13ProgressViewBarPercentagePositionLeft) {
|
||||
//Calculate sizes
|
||||
progressFrame.size = CGSizeMake(_progressBarThickness, self.bounds.size.height);
|
||||
labelFrame.size = CGSizeMake(self.bounds.size.width - labelProgressBufferDistance - progressFrame.size.width, self.bounds.size.height);
|
||||
//Align the bar with the right side of the frame.
|
||||
progressFrame.origin = CGPointMake(self.bounds.size.width - labelProgressBufferDistance - progressFrame.size.width, 0);
|
||||
labelFrame.origin = CGPointMake(0, 0);
|
||||
//Set the frames of the progress and label
|
||||
_progressBar.frame = progressFrame;
|
||||
_percentageLabel.frame = labelFrame;
|
||||
//Set the label font
|
||||
UIFont *font = [UIFont fontWithName:((__bridge UIFont*)_percentageLabel.font).fontName size:[self maximumFontSizeThatFitsInRect:labelFrame]];
|
||||
_percentageLabel.font = (__bridge CFTypeRef)font;
|
||||
_percentageLabel.fontSize = font.pointSize;
|
||||
|
||||
} else if (_percentagePosition == M13ProgressViewBarPercentagePositionRight) {
|
||||
//Calculate Sizes
|
||||
progressFrame.size = CGSizeMake(_progressBarThickness, self.bounds.size.height);
|
||||
labelFrame.size = CGSizeMake(self.bounds.size.width - labelProgressBufferDistance - progressFrame.size.width, self.bounds.size.height);
|
||||
//Align the bar with the left side of the frame
|
||||
progressFrame.origin = CGPointMake(0, 0);
|
||||
labelFrame.origin = CGPointMake(labelProgressBufferDistance + progressFrame.size.width, 0);
|
||||
//Set the frames of the progress and label
|
||||
_progressBar.frame = progressFrame;
|
||||
_percentageLabel.frame = labelFrame;
|
||||
//Set the label font
|
||||
UIFont *font = [UIFont fontWithName:((__bridge UIFont*)_percentageLabel.font).fontName size:[self maximumFontSizeThatFitsInRect:labelFrame]];
|
||||
_percentageLabel.font = (__bridge CFTypeRef)font;
|
||||
_percentageLabel.fontSize = font.pointSize;
|
||||
|
||||
} else if (_percentagePosition == M13ProgressViewBarPercentagePositionTop) {
|
||||
//Calculate Sizes
|
||||
labelFrame.size = [self maximumSizeForFontSizeThatFitsInRect:CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height)];
|
||||
progressFrame.size = CGSizeMake(_progressBarThickness, self.bounds.size.height - labelFrame.size.height - labelProgressBufferDistance);
|
||||
//Align the bar with the bottom of frame
|
||||
labelFrame.origin = CGPointMake(0, 0);
|
||||
progressFrame.origin = CGPointMake((self.bounds.size.width / 2.0) - (_progressBarThickness / 2.0), labelFrame.size.height + labelProgressBufferDistance);
|
||||
//Set the frames
|
||||
_progressBar.frame = progressFrame;
|
||||
_percentageLabel.frame = labelFrame;
|
||||
//Set the label font
|
||||
UIFont *font = [UIFont fontWithName:((__bridge UIFont*)_percentageLabel.font).fontName size:[self maximumFontSizeThatFitsInRect:labelFrame]];
|
||||
_percentageLabel.font = (__bridge CFTypeRef)font;
|
||||
_percentageLabel.fontSize = font.pointSize;
|
||||
|
||||
} else if (_percentagePosition == M13ProgressViewBarPercentagePositionBottom) {
|
||||
//Calculate Sizes
|
||||
labelFrame.size = [self maximumSizeForFontSizeThatFitsInRect:CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height)];
|
||||
progressFrame.size = CGSizeMake(_progressBarThickness, self.bounds.size.height - labelFrame.size.height - labelProgressBufferDistance);
|
||||
//Align the bar with the bottom of frame
|
||||
labelFrame.origin = CGPointMake(0, self.bounds.size.height - labelFrame.size.height);
|
||||
progressFrame.origin = CGPointMake((self.bounds.size.width / 2.0) - (_progressBarThickness / 2.0), 0);
|
||||
//Set the frames
|
||||
_progressBar.frame = progressFrame;
|
||||
_percentageLabel.frame = labelFrame;
|
||||
//Set the label font
|
||||
UIFont *font = [UIFont fontWithName:((__bridge UIFont*)_percentageLabel.font).fontName size:[self maximumFontSizeThatFitsInRect:labelFrame]];
|
||||
_percentageLabel.font = (__bridge CFTypeRef)font;
|
||||
_percentageLabel.fontSize = font.pointSize;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//Label not shown, The progress bar can be the full size of the progress view.
|
||||
if (_progressDirection == M13ProgressViewBarProgressDirectionBottomToTop || _progressDirection == M13ProgressViewBarProgressDirectionTopToBottom) {
|
||||
_progressBar.frame = CGRectMake((self.bounds.size.width / 2.0) - (_progressBarThickness / 2.0), 0, _progressBarThickness, self.bounds.size.height);
|
||||
} else if (_progressDirection == M13ProgressViewBarProgressDirectionLeftToRight || _progressDirection == M13ProgressViewBarProgressDirectionRightToLeft) {
|
||||
_progressBar.frame = CGRectMake(0, (self.bounds.size.height / 2.0) - (_progressBarThickness / 2.0), self.bounds.size.width, _progressBarThickness);
|
||||
}
|
||||
}
|
||||
|
||||
//Set the indeterminate layer frame
|
||||
if (_progressDirection == M13ProgressViewBarProgressDirectionLeftToRight || _progressDirection == M13ProgressViewBarProgressDirectionRightToLeft) {
|
||||
//Set the indeterminate layer frame (reset the animation so the animation starts and ends at the right points)
|
||||
[_indeterminateLayer removeAllAnimations];
|
||||
_indeterminateLayer.frame = CGRectMake(0, 0, _progressBar.frame.size.width * .2, _progressBarThickness * 2);
|
||||
[self setIndeterminate:self.indeterminate];
|
||||
} else {
|
||||
//Set the indeterminate layer frame (reset the animation so the animation starts and ends at the right points)
|
||||
[_indeterminateLayer removeAllAnimations];
|
||||
_indeterminateLayer.frame = CGRectMake(0, 0, _progressBarThickness * 2, _progressBar.frame.size.height * .2);
|
||||
[self setIndeterminate:self.indeterminate];
|
||||
}
|
||||
|
||||
|
||||
//Set the progress layer frame
|
||||
_progressLayer.frame = _progressBar.bounds;
|
||||
|
||||
}
|
||||
|
||||
- (CGSize)intrinsicContentSize
|
||||
{
|
||||
CGFloat labelProgressBufferDistance = _progressBarThickness * 4;
|
||||
|
||||
//Progress bar thickness is the only non-scale based size parameter.
|
||||
if (_progressDirection == M13ProgressViewBarProgressDirectionBottomToTop || _progressDirection == M13ProgressViewBarProgressDirectionTopToBottom) {
|
||||
if (_percentagePosition == M13ProgressViewBarPercentagePositionTop || _percentagePosition == M13ProgressViewBarPercentagePositionBottom) {
|
||||
return CGSizeMake(_progressBarThickness, labelProgressBufferDistance);
|
||||
} else {
|
||||
return CGSizeMake(_progressBarThickness + labelProgressBufferDistance, UIViewNoIntrinsicMetric);
|
||||
}
|
||||
} else {
|
||||
if (_percentagePosition == M13ProgressViewBarPercentagePositionTop || _percentagePosition == M13ProgressViewBarPercentagePositionBottom) {
|
||||
return CGSizeMake(UIViewNoIntrinsicMetric, _progressBarThickness + labelProgressBufferDistance);
|
||||
} else {
|
||||
return CGSizeMake(labelProgressBufferDistance, _progressBarThickness);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (CGFloat)maximumFontSizeThatFitsInRect:(CGRect)frame
|
||||
{
|
||||
//Starting parameters
|
||||
CGFloat fontSize = 0;
|
||||
CGRect textRect = CGRectZero;
|
||||
//While the width and height are within the constraint
|
||||
while (frame.size.width > textRect.size.width && frame.size.height > textRect.size.height && textRect.size.width >= textRect.size.height) {
|
||||
//Increase font size
|
||||
fontSize += 1;
|
||||
//Calculate frame size
|
||||
textRect = [@"100%" boundingRectWithSize:frame.size options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading) attributes:@{NSFontAttributeName : [UIFont fontWithName:((__bridge UIFont*)_percentageLabel.font).fontName size:fontSize]} context:nil];
|
||||
}
|
||||
//Decrease font size as the previous one was the last size that worked
|
||||
return fontSize - 1;
|
||||
}
|
||||
|
||||
- (CGSize)maximumSizeForFontSizeThatFitsInRect:(CGRect)frame
|
||||
{
|
||||
CGRect textRect = [@"100%" boundingRectWithSize:frame.size options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading) attributes:@{NSFontAttributeName : [UIFont fontWithName:((__bridge UIFont*)_percentageLabel.font).fontName size:[self maximumFontSizeThatFitsInRect:frame]]} context:nil];
|
||||
return textRect.size;
|
||||
}
|
||||
|
||||
#pragma mark Drawing
|
||||
|
||||
- (void)drawRect:(CGRect)rect
|
||||
{
|
||||
//Update Percentage Label
|
||||
if (_currentAction == M13ProgressViewActionSuccess) {
|
||||
_percentageLabel.string = @"✓";
|
||||
} else if (_currentAction == M13ProgressViewActionFailure) {
|
||||
_percentageLabel.string = @"✕";
|
||||
} else if (_currentAction == M13ProgressViewActionNone) {
|
||||
if (!self.indeterminate) {
|
||||
_percentageLabel.string = [_percentageFormatter stringFromNumber:[NSNumber numberWithFloat:self.progress]];
|
||||
} else {
|
||||
_percentageLabel.string = @"∞";
|
||||
}
|
||||
}
|
||||
|
||||
//Set path to draw the progress
|
||||
if (self.progress != 0) {
|
||||
if (_progressDirection == M13ProgressViewBarProgressDirectionLeftToRight) {
|
||||
UIBezierPath *path = [UIBezierPath bezierPath];
|
||||
[path moveToPoint:CGPointMake(0, _progressBarThickness / 2.0)];
|
||||
[path addLineToPoint:CGPointMake(_progressLayer.frame.size.width * self.progress, _progressBarThickness / 2.0)];
|
||||
[_progressLayer setPath:path.CGPath];
|
||||
} else if (_progressDirection == M13ProgressViewBarProgressDirectionRightToLeft) {
|
||||
UIBezierPath *path = [UIBezierPath bezierPath];
|
||||
[path moveToPoint:CGPointMake(_progressLayer.frame.size.width, _progressBarThickness / 2.0)];
|
||||
[path addLineToPoint:CGPointMake(_progressLayer.frame.size.width * (1 - self.progress), _progressBarThickness / 2.0)];
|
||||
[_progressLayer setPath:path.CGPath];
|
||||
} else if (_progressDirection == M13ProgressViewBarProgressDirectionBottomToTop) {
|
||||
UIBezierPath *path = [UIBezierPath bezierPath];
|
||||
[path moveToPoint:CGPointMake(_progressBarThickness / 2.0, _progressLayer.frame.size.height)];
|
||||
[path addLineToPoint:CGPointMake(_progressBarThickness / 2.0, _progressLayer.frame.size.height * (1 - self.progress))];
|
||||
[_progressLayer setPath:path.CGPath];
|
||||
} else if (_progressDirection == M13ProgressViewBarProgressDirectionTopToBottom) {
|
||||
UIBezierPath *path = [UIBezierPath bezierPath];
|
||||
[path moveToPoint:CGPointMake(_progressBarThickness / 2.0, 0)];
|
||||
[path addLineToPoint:CGPointMake(_progressBarThickness / 2.0, _progressLayer.frame.size.height * self.progress)];
|
||||
[_progressLayer setPath:path.CGPath];
|
||||
}
|
||||
} else {
|
||||
[_progressLayer setPath:nil];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,47 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewBorderedBar.h
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import "M13ProgressView.h"
|
||||
|
||||
typedef enum {
|
||||
M13ProgressViewBorderedBarProgressDirectionLeftToRight,
|
||||
M13ProgressViewBorderedBarProgressDirectionBottomToTop,
|
||||
M13ProgressViewBorderedBarProgressDirectionRightToLeft,
|
||||
M13ProgressViewBorderedBarProgressDirectionTopToBottom
|
||||
} M13ProgressViewBorderedBarProgressDirection;
|
||||
|
||||
typedef enum {
|
||||
M13ProgressViewBorderedBarCornerTypeSquare,
|
||||
M13ProgressViewBorderedBarCornerTypeRounded,
|
||||
M13ProgressViewBorderedBarCornerTypeCircle
|
||||
} M13ProgressViewBorderedBarCornerType;
|
||||
|
||||
/**A Progress bar with a thick border.*/
|
||||
@interface M13ProgressViewBorderedBar : M13ProgressView
|
||||
|
||||
/**@name Appearance*/
|
||||
/**The direction of progress. (What direction the fill proceeds in.)*/
|
||||
@property (nonatomic, assign) M13ProgressViewBorderedBarProgressDirection progressDirection;
|
||||
/**The type of corner to display on the bar.*/
|
||||
@property (nonatomic, assign) M13ProgressViewBorderedBarCornerType cornerType;
|
||||
/**The corner radius of the ber if the corner type is set to Rounded.*/
|
||||
@property (nonatomic, assign) CGFloat cornerRadius;
|
||||
/**The border width of the progress bar.*/
|
||||
@property (nonatomic, assign) CGFloat borderWidth;
|
||||
/**@name Actions*/
|
||||
/**The color the bar changes to for the success action.*/
|
||||
@property (nonatomic, retain) UIColor *successColor;
|
||||
/**The color the bar changes to for the failure action.*/
|
||||
@property (nonatomic, retain) UIColor *failureColor;
|
||||
|
||||
@end
|
||||
@@ -1,449 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewBorderedBar.m
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import "M13ProgressViewBorderedBar.h"
|
||||
|
||||
@interface M13ProgressViewBorderedBar ()
|
||||
/**The start progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationFromValue;
|
||||
/**The end progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationToValue;
|
||||
/**The start time interval for the animaiton.*/
|
||||
@property (nonatomic, assign) CFTimeInterval animationStartTime;
|
||||
/**Link to the display to keep animations in sync.*/
|
||||
@property (nonatomic, strong) CADisplayLink *displayLink;
|
||||
/**The layer that contains the progress layer. That also masks the progress layer.*/
|
||||
@property (nonatomic, retain) CALayer *progressSuperLayer;
|
||||
/**The layer that displays progress in the progress bar.*/
|
||||
@property (nonatomic, retain) CAShapeLayer *progressLayer;
|
||||
/**The mask layer for the progress layer.*/
|
||||
@property (nonatomic, retain) CAShapeLayer *maskLayer;
|
||||
/**The background layer that displays the border.*/
|
||||
@property (nonatomic, retain) CAShapeLayer *backgroundLayer;
|
||||
/**The layer that is used to animate indeterminate progress.*/
|
||||
@property (nonatomic, retain) CALayer *indeterminateLayer;
|
||||
/**The action currently being performed.*/
|
||||
@property (nonatomic, assign) M13ProgressViewAction currentAction;
|
||||
|
||||
@end
|
||||
|
||||
@implementation M13ProgressViewBorderedBar
|
||||
|
||||
#pragma mark Initalization and setup
|
||||
|
||||
- (id)init
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(NSCoder *)aDecoder
|
||||
{
|
||||
self = [super initWithCoder:aDecoder];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)setup
|
||||
{
|
||||
//Set own background color
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
|
||||
//Set defauts
|
||||
self.animationDuration = .3;
|
||||
_borderWidth = 1.0;
|
||||
_cornerRadius = 3.0;
|
||||
_progressDirection = M13ProgressViewBorderedBarProgressDirectionLeftToRight;
|
||||
_cornerType = M13ProgressViewBorderedBarCornerTypeSquare;
|
||||
|
||||
//Set default colors
|
||||
self.primaryColor = [UIColor colorWithRed:0 green:122/255.0 blue:1.0 alpha:1.0];
|
||||
self.secondaryColor = self.primaryColor;
|
||||
_successColor = [UIColor colorWithRed:63.0f/255.0f green:226.0f/255.0f blue:80.0f/255.0f alpha:1];
|
||||
_failureColor = [UIColor colorWithRed:249.0f/255.0f green:37.0f/255.0f blue:0 alpha:1];
|
||||
|
||||
//BackgroundLayer
|
||||
_backgroundLayer = [CAShapeLayer layer];
|
||||
_backgroundLayer.strokeColor = self.secondaryColor.CGColor;
|
||||
_backgroundLayer.fillColor = nil;
|
||||
_backgroundLayer.lineWidth = _borderWidth;
|
||||
[self.layer addSublayer:_backgroundLayer];
|
||||
|
||||
//ProgressLayer
|
||||
_progressLayer = [CAShapeLayer layer];
|
||||
_progressLayer.fillColor = self.primaryColor.CGColor;
|
||||
_maskLayer = [CAShapeLayer layer];
|
||||
_maskLayer.fillColor = [UIColor blackColor].CGColor;
|
||||
_maskLayer.backgroundColor = [UIColor clearColor].CGColor;
|
||||
_progressSuperLayer = [CALayer layer];
|
||||
_progressSuperLayer.mask = _maskLayer;
|
||||
[_progressSuperLayer addSublayer:_progressLayer];
|
||||
[self.layer addSublayer:_progressSuperLayer];
|
||||
|
||||
//IndeterminateLayer
|
||||
_indeterminateLayer = [CALayer layer];
|
||||
_indeterminateLayer.backgroundColor = self.primaryColor.CGColor;
|
||||
_indeterminateLayer.opacity = 0;
|
||||
[_progressSuperLayer addSublayer:_indeterminateLayer];
|
||||
|
||||
//Layout
|
||||
[self layoutSubviews];
|
||||
}
|
||||
|
||||
#pragma mark Appearance
|
||||
|
||||
- (void)setPrimaryColor:(UIColor *)primaryColor
|
||||
{
|
||||
[super setPrimaryColor:primaryColor];
|
||||
_progressLayer.fillColor = self.primaryColor.CGColor;
|
||||
_indeterminateLayer.backgroundColor = self.primaryColor.CGColor;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setSecondaryColor:(UIColor *)secondaryColor
|
||||
{
|
||||
[super setSecondaryColor:secondaryColor];
|
||||
_backgroundLayer.strokeColor = self.secondaryColor.CGColor;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setSuccessColor:(UIColor *)successColor
|
||||
{
|
||||
_successColor = successColor;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setFailureColor:(UIColor *)failureColor
|
||||
{
|
||||
_failureColor = failureColor;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setProgressDirection:(M13ProgressViewBorderedBarProgressDirection)progressDirection
|
||||
{
|
||||
_progressDirection = progressDirection;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setCornerType:(M13ProgressViewBorderedBarCornerType)cornerType
|
||||
{
|
||||
_cornerType = cornerType;
|
||||
[self calculateMask];
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setCornerRadius:(CGFloat)cornerRadius
|
||||
{
|
||||
_cornerRadius = cornerRadius;
|
||||
[self calculateMask];
|
||||
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setBorderWidth:(CGFloat)borderWidth
|
||||
{
|
||||
_borderWidth = borderWidth;
|
||||
_backgroundLayer.lineWidth = borderWidth;
|
||||
[self calculateMask];
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
#pragma mark Actions
|
||||
|
||||
- (void)setProgress:(CGFloat)progress animated:(BOOL)animated
|
||||
{
|
||||
if (animated == NO) {
|
||||
if (_displayLink) {
|
||||
//Kill running animations
|
||||
[_displayLink invalidate];
|
||||
_displayLink = nil;
|
||||
}
|
||||
[super setProgress:progress animated:NO];
|
||||
[self setNeedsDisplay];
|
||||
} else {
|
||||
_animationStartTime = CACurrentMediaTime();
|
||||
_animationFromValue = self.progress;
|
||||
_animationToValue = progress;
|
||||
if (!_displayLink) {
|
||||
//Create and setup the display link
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(animateProgress:)];
|
||||
[self.displayLink addToRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
|
||||
} /*else {
|
||||
//Reuse the current display link
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
- (void)animateProgress:(CADisplayLink *)displayLink
|
||||
{
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
CGFloat dt = (displayLink.timestamp - _animationStartTime) / self.animationDuration;
|
||||
if (dt >= 1.0) {
|
||||
//Order is important! Otherwise concurrency will cause errors, because setProgress: will detect an animation in progress and try to stop it by itself. Once over one, set to actual progress amount. Animation is over.
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = nil;
|
||||
[super setProgress:_animationToValue animated:NO];
|
||||
[self setNeedsDisplay];
|
||||
return;
|
||||
}
|
||||
|
||||
//Set progress
|
||||
[super setProgress:_animationFromValue + dt * (_animationToValue - _animationFromValue) animated:YES];
|
||||
[self setNeedsDisplay];
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated
|
||||
{
|
||||
if (action == M13ProgressViewActionNone && _currentAction != M13ProgressViewActionNone) {
|
||||
_currentAction = action;
|
||||
[self setNeedsDisplay];
|
||||
[CATransaction begin];
|
||||
CABasicAnimation *barAnimation = [self barColorAnimation];
|
||||
CABasicAnimation *indeterminateAnimation = [self indeterminateColorAnimation];
|
||||
barAnimation.fromValue = (id)_progressLayer.strokeColor;
|
||||
barAnimation.toValue = (id)self.primaryColor.CGColor;
|
||||
indeterminateAnimation.fromValue = (id)_indeterminateLayer.backgroundColor;
|
||||
indeterminateAnimation.toValue = (id)self.primaryColor.CGColor;
|
||||
[_progressLayer addAnimation:barAnimation forKey:@"fillColor"];
|
||||
[_indeterminateLayer addAnimation:indeterminateAnimation forKey:@"backgroundColor"];
|
||||
[CATransaction commit];
|
||||
} else if (action == M13ProgressViewActionSuccess && _currentAction != M13ProgressViewActionSuccess) {
|
||||
_currentAction = action;
|
||||
[self setNeedsDisplay];
|
||||
[CATransaction begin];
|
||||
CABasicAnimation *barAnimation = [self barColorAnimation];
|
||||
CABasicAnimation *indeterminateAnimation = [self indeterminateColorAnimation];
|
||||
barAnimation.fromValue = (id)_progressLayer.strokeColor;
|
||||
barAnimation.toValue = (id)_successColor.CGColor;
|
||||
indeterminateAnimation.fromValue = (id)_indeterminateLayer.backgroundColor;
|
||||
indeterminateAnimation.toValue = (id)_successColor.CGColor;
|
||||
[_progressLayer addAnimation:barAnimation forKey:@"fillColor"];
|
||||
[_indeterminateLayer addAnimation:indeterminateAnimation forKey:@"backgroundColor"];
|
||||
[CATransaction commit];
|
||||
} else if (action == M13ProgressViewActionFailure && _currentAction != M13ProgressViewActionFailure) {
|
||||
_currentAction = action;
|
||||
[self setNeedsDisplay];
|
||||
[CATransaction begin];
|
||||
CABasicAnimation *barAnimation = [self barColorAnimation];
|
||||
CABasicAnimation *indeterminateAnimation = [self indeterminateColorAnimation];
|
||||
barAnimation.fromValue = (id)_progressLayer.strokeColor;
|
||||
barAnimation.toValue = (id)_failureColor.CGColor;
|
||||
indeterminateAnimation.fromValue = (id)_indeterminateLayer.backgroundColor;
|
||||
indeterminateAnimation.toValue = (id)_failureColor.CGColor;
|
||||
[_progressLayer addAnimation:barAnimation forKey:@"fillColor"];
|
||||
[_indeterminateLayer addAnimation:indeterminateAnimation forKey:@"backgroundColor"];
|
||||
[CATransaction commit];
|
||||
}
|
||||
}
|
||||
|
||||
- (CABasicAnimation *)barColorAnimation
|
||||
{
|
||||
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"fillColor"];
|
||||
animation.duration = 2 * self.animationDuration;
|
||||
animation.repeatCount = 1;
|
||||
//Prevent the animation from resetting
|
||||
animation.fillMode = kCAFillModeForwards;
|
||||
animation.removedOnCompletion = NO;
|
||||
return animation;
|
||||
}
|
||||
|
||||
- (CABasicAnimation *)indeterminateColorAnimation
|
||||
{
|
||||
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"backgroundColor"];
|
||||
animation.duration = 2 * self.animationDuration;
|
||||
animation.repeatCount = 1;
|
||||
//Prevent the animation from resetting
|
||||
animation.fillMode = kCAFillModeForwards;
|
||||
animation.removedOnCompletion = NO;
|
||||
return animation;
|
||||
}
|
||||
|
||||
- (void)setIndeterminate:(BOOL)indeterminate
|
||||
{
|
||||
[super setIndeterminate:indeterminate];
|
||||
|
||||
if (self.indeterminate == YES) {
|
||||
//show the indeterminate view
|
||||
_indeterminateLayer.opacity = 1;
|
||||
_progressLayer.opacity = 0;
|
||||
//Create the animation
|
||||
[_indeterminateLayer removeAnimationForKey:@"position"];
|
||||
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];
|
||||
animation.duration = 5 * self.animationDuration;
|
||||
animation.repeatCount = HUGE_VALF;
|
||||
animation.removedOnCompletion = YES;
|
||||
//Set the animation control points
|
||||
if (_progressDirection == M13ProgressViewBorderedBarProgressDirectionLeftToRight) {
|
||||
animation.fromValue = [NSValue valueWithCGPoint:CGPointMake(-_indeterminateLayer.frame.size.width, _indeterminateLayer.frame.size.height / 2)];
|
||||
animation.toValue = [NSValue valueWithCGPoint:CGPointMake(_indeterminateLayer.frame.size.width + self.bounds.size.width, _indeterminateLayer.frame.size.height / 2)];
|
||||
} else if (_progressDirection == M13ProgressViewBorderedBarProgressDirectionRightToLeft) {
|
||||
animation.fromValue = [NSValue valueWithCGPoint:CGPointMake(_indeterminateLayer.frame.size.width + self.bounds.size.width, _indeterminateLayer.frame.size.height / 2)];
|
||||
animation.toValue = [NSValue valueWithCGPoint:CGPointMake(-_indeterminateLayer.frame.size.width, _indeterminateLayer.frame.size.height / 2)];
|
||||
} else if (_progressDirection == M13ProgressViewBorderedBarProgressDirectionBottomToTop) {
|
||||
animation.fromValue = [NSValue valueWithCGPoint:CGPointMake(_indeterminateLayer.frame.size.width / 2, self.bounds.size.height + _indeterminateLayer.frame.size.height)];
|
||||
animation.toValue = [NSValue valueWithCGPoint:CGPointMake(_indeterminateLayer.frame.size.width / 2, -_indeterminateLayer.frame.size.height)];
|
||||
} else if (_progressDirection == M13ProgressViewBorderedBarProgressDirectionTopToBottom) {
|
||||
animation.toValue = [NSValue valueWithCGPoint:CGPointMake(_indeterminateLayer.frame.size.width / 2, self.bounds.size.height + _indeterminateLayer.frame.size.height)];
|
||||
animation.fromValue = [NSValue valueWithCGPoint:CGPointMake(_indeterminateLayer.frame.size.width / 2, -_indeterminateLayer.frame.size.height)];
|
||||
}
|
||||
[_indeterminateLayer addAnimation:animation forKey:@"position"];
|
||||
} else {
|
||||
//Hide the indeterminate view
|
||||
_indeterminateLayer.opacity = 0;
|
||||
_progressLayer.opacity = 1;
|
||||
//Remove all animations
|
||||
[_indeterminateLayer removeAnimationForKey:@"position"];
|
||||
//Reset progress text
|
||||
}
|
||||
}
|
||||
|
||||
- (void)layoutSubviews
|
||||
{
|
||||
[super layoutSubviews];
|
||||
|
||||
[self calculateMask];
|
||||
//Set the background layer size
|
||||
_backgroundLayer.frame = self.bounds;
|
||||
_progressLayer.frame = self.bounds;
|
||||
|
||||
//Set the indeterminate layer frame
|
||||
if (_progressDirection == M13ProgressViewBorderedBarProgressDirectionLeftToRight || _progressDirection == M13ProgressViewBorderedBarProgressDirectionRightToLeft) {
|
||||
//Set the indeterminate layer frame (reset the animation so the animation starts and ends at the right points)
|
||||
[_indeterminateLayer removeAllAnimations];
|
||||
_indeterminateLayer.frame = CGRectMake(0, 0, self.frame.size.width * .4, self.frame.size.height);
|
||||
[self setIndeterminate:self.indeterminate];
|
||||
} else {
|
||||
//Set the indeterminate layer frame (reset the animation so the animation starts and ends at the right points)
|
||||
[_indeterminateLayer removeAllAnimations];
|
||||
_indeterminateLayer.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height * .4);
|
||||
[self setIndeterminate:self.indeterminate];
|
||||
}
|
||||
}
|
||||
|
||||
- (CGSize)intrinsicContentSize
|
||||
{
|
||||
return CGSizeMake(UIViewNoIntrinsicMetric, UIViewNoIntrinsicMetric);
|
||||
}
|
||||
|
||||
#pragma mark Drawing
|
||||
|
||||
- (void)drawRect:(CGRect)rect
|
||||
{
|
||||
if (!self.indeterminate) {
|
||||
[self drawProgress];
|
||||
}
|
||||
[self drawBackground];
|
||||
}
|
||||
|
||||
- (void)drawBackground
|
||||
{
|
||||
//Create the path to stroke
|
||||
//Calculate the corner radius
|
||||
CGFloat cornerRadius = 0;
|
||||
if (_cornerType == M13ProgressViewBorderedBarCornerTypeRounded) {
|
||||
cornerRadius = _cornerRadius;
|
||||
} else if (_cornerType == M13ProgressViewBorderedBarCornerTypeCircle) {
|
||||
if (_progressDirection == M13ProgressViewBorderedBarProgressDirectionLeftToRight || _progressDirection == M13ProgressViewBorderedBarProgressDirectionRightToLeft) {
|
||||
cornerRadius = self.bounds.size.height - _borderWidth;
|
||||
} else {
|
||||
cornerRadius = self.bounds.size.width - _borderWidth;
|
||||
}
|
||||
}
|
||||
|
||||
//Draw the path
|
||||
CGRect rect = CGRectMake(_borderWidth / 2.0, _borderWidth / 2.0, self.bounds.size.width - _borderWidth, self.bounds.size.height - _borderWidth);
|
||||
UIBezierPath *path;
|
||||
if (_cornerType == M13ProgressViewBorderedBarCornerTypeSquare) {
|
||||
//Having a 0 corner radius does not display properly since the rect displays like it is not closed.
|
||||
path = [UIBezierPath bezierPathWithRect:rect];
|
||||
} else {
|
||||
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];;
|
||||
}
|
||||
_backgroundLayer.path = path.CGPath;
|
||||
}
|
||||
|
||||
- (void)drawProgress
|
||||
{
|
||||
|
||||
//Calculate the corner radius
|
||||
CGFloat cornerRadius = 0;
|
||||
if (_cornerType == M13ProgressViewBorderedBarCornerTypeRounded) {
|
||||
cornerRadius = _cornerRadius;
|
||||
} else if (_cornerType == M13ProgressViewBorderedBarCornerTypeCircle) {
|
||||
if (_progressDirection == M13ProgressViewBorderedBarProgressDirectionLeftToRight || _progressDirection == M13ProgressViewBorderedBarProgressDirectionRightToLeft) {
|
||||
cornerRadius = self.bounds.size.height - (2 * _borderWidth);
|
||||
} else {
|
||||
cornerRadius = self.bounds.size.width - (2 * _borderWidth);
|
||||
}
|
||||
}
|
||||
|
||||
//Draw the path
|
||||
CGRect rect = CGRectZero;
|
||||
if (_progressDirection == M13ProgressViewBorderedBarProgressDirectionLeftToRight) {
|
||||
rect = CGRectMake(_borderWidth * 2, _borderWidth * 2, (self.bounds.size.width - (4 * _borderWidth)) * self.progress, self.bounds.size.height - (4 * _borderWidth));
|
||||
} else if (_progressDirection == M13ProgressViewBorderedBarProgressDirectionRightToLeft) {
|
||||
rect = CGRectMake((_borderWidth * 2) + ((self.bounds.size.width - (4 * _borderWidth)) * (1 - self.progress)), _borderWidth * 2, (self.bounds.size.width - (4 * _borderWidth)) * self.progress, self.bounds.size.height - (4 * _borderWidth));
|
||||
} else if (_progressDirection == M13ProgressViewBorderedBarProgressDirectionBottomToTop) {
|
||||
rect = CGRectMake(_borderWidth * 2, ((self.bounds.size.height - (4 * _borderWidth)) * (1 - self.progress)) + (2 * _borderWidth), self.bounds.size.width - (4 * _borderWidth), (self.bounds.size.height - (4 * _borderWidth)) * self.progress);
|
||||
} else if (_progressDirection == M13ProgressViewBorderedBarProgressDirectionTopToBottom) {
|
||||
rect = CGRectMake(_borderWidth * 2, _borderWidth * 2, self.bounds.size.width - (4 * _borderWidth), (self.bounds.size.height - (4 * _borderWidth)) * self.progress);
|
||||
}
|
||||
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
|
||||
[_progressLayer setPath:path.CGPath];
|
||||
}
|
||||
|
||||
- (void)calculateMask
|
||||
{
|
||||
//Calculate the corner radius
|
||||
CGFloat cornerRadius = 0;
|
||||
if (_cornerType == M13ProgressViewBorderedBarCornerTypeRounded) {
|
||||
cornerRadius = _cornerRadius;
|
||||
} else if (_cornerType == M13ProgressViewBorderedBarCornerTypeCircle) {
|
||||
if (_progressDirection == M13ProgressViewBorderedBarProgressDirectionLeftToRight || _progressDirection == M13ProgressViewBorderedBarProgressDirectionRightToLeft) {
|
||||
cornerRadius = self.bounds.size.height - (2 * _borderWidth);
|
||||
} else {
|
||||
cornerRadius = self.bounds.size.width - (2 * _borderWidth);
|
||||
}
|
||||
}
|
||||
|
||||
//Draw the path
|
||||
CGRect rect = CGRectMake(_borderWidth * 2, _borderWidth * 2, self.bounds.size.width - (4 * _borderWidth), self.bounds.size.height - (4 * _borderWidth));
|
||||
|
||||
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
|
||||
|
||||
//Create the mask
|
||||
_maskLayer.path = path.CGPath;
|
||||
|
||||
//Set the frame
|
||||
_maskLayer.frame = self.bounds;
|
||||
_progressSuperLayer.frame = self.bounds;
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,44 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewFilteredImage.h
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import "M13ProgressView.h"
|
||||
#import <CoreImage/CoreImage.h>
|
||||
|
||||
#define kM13ProgressViewFilteredImageCIFilterStartValuesKey @"StartValues"
|
||||
#define kM13ProgressViewFilteredImageCIFilterEndValuesKey @"EndValues"
|
||||
|
||||
/**A progress view where progress is shown by changes in CIFilters.
|
||||
@note This progress bar does not have in indeterminate mode and does not respond to actions.*/
|
||||
@interface M13ProgressViewFilteredImage : M13ProgressView
|
||||
|
||||
/**@name Appearance*/
|
||||
/**The image to use when showing progress.*/
|
||||
@property (nonatomic, retain) UIImage *progressImage;
|
||||
/**The UIImageView that shows the progress image.*/
|
||||
@property (nonatomic, retain) UIImageView *progressView;
|
||||
/**The array of CIFilters to apply to the image.
|
||||
@note The filters need to be encased in a M13ProgressViewCIFilterWrapper*/
|
||||
@property (nonatomic, retain) NSArray *filters;
|
||||
/**The dictionaries of dictionaries that coresspond to filter properties to be changed.
|
||||
NSArray
|
||||
|------ NSDictionary (Index matches the coresponding CIFilter in filters)
|
||||
| |---- "Parameter Key" -> NSDictionary
|
||||
| | |------ "Start Value" -> NSNumber
|
||||
| | |------ "End Value" -> NSNumber
|
||||
| |---- "Parameter Key" -> NSDictionary
|
||||
| |------ "Start Value" -> NSNumber
|
||||
| |------ "End Value" -> NSNumber
|
||||
|------ NSDictionary ... */
|
||||
@property (nonatomic, retain) NSArray *filterParameters;
|
||||
|
||||
@end
|
||||
@@ -1,201 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewFilteredImage.m
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import "M13ProgressViewFilteredImage.h"
|
||||
|
||||
@interface M13ProgressViewFilteredImage ()
|
||||
|
||||
/**The start progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationFromValue;
|
||||
/**The end progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationToValue;
|
||||
/**The start time interval for the animaiton.*/
|
||||
@property (nonatomic, assign) CFTimeInterval animationStartTime;
|
||||
/**Link to the display to keep animations in sync.*/
|
||||
@property (nonatomic, strong) CADisplayLink *displayLink;
|
||||
|
||||
@end
|
||||
|
||||
@implementation M13ProgressViewFilteredImage
|
||||
|
||||
#pragma mark Initalization and setup
|
||||
|
||||
- (id)init
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(NSCoder *)aDecoder
|
||||
{
|
||||
self = [super initWithCoder:aDecoder];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)setup
|
||||
{
|
||||
//Set own background color
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
|
||||
//Set defauts
|
||||
self.animationDuration = .3;
|
||||
|
||||
//Set up the progress view
|
||||
_progressView = [[UIImageView alloc] init];
|
||||
_progressView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
_progressView.frame = self.bounds;
|
||||
[self addSubview:_progressView];
|
||||
|
||||
//Layout
|
||||
[self layoutSubviews];
|
||||
}
|
||||
|
||||
#pragma mark Appearance
|
||||
|
||||
- (void)setProgressImage:(UIImage *)progressImage
|
||||
{
|
||||
_progressImage = progressImage;
|
||||
[_progressView setImage:_progressImage];
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setFilters:(NSArray *)filters
|
||||
{
|
||||
_filters = filters;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setFilterParameters:(NSArray *)filterParameters
|
||||
{
|
||||
_filterParameters = filterParameters;
|
||||
}
|
||||
|
||||
#pragma mark Actions
|
||||
|
||||
- (void)setProgress:(CGFloat)progress animated:(BOOL)animated
|
||||
{
|
||||
if (animated == NO) {
|
||||
if (_displayLink) {
|
||||
//Kill running animations
|
||||
[_displayLink invalidate];
|
||||
_displayLink = nil;
|
||||
}
|
||||
[super setProgress:progress animated:NO];
|
||||
[self setNeedsDisplay];
|
||||
} else {
|
||||
_animationStartTime = CACurrentMediaTime();
|
||||
_animationFromValue = self.progress;
|
||||
_animationToValue = progress;
|
||||
if (!_displayLink) {
|
||||
//Create and setup the display link
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(animateProgress:)];
|
||||
[self.displayLink addToRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
|
||||
} /*else {
|
||||
//Reuse the current display link
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
- (void)animateProgress:(CADisplayLink *)displayLink
|
||||
{
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
CGFloat dt = (displayLink.timestamp - _animationStartTime) / self.animationDuration;
|
||||
if (dt >= 1.0) {
|
||||
//Order is important! Otherwise concurrency will cause errors, because setProgress: will detect an animation in progress and try to stop it by itself. Once over one, set to actual progress amount. Animation is over.
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = nil;
|
||||
[super setProgress:_animationToValue animated:NO];
|
||||
[self setNeedsDisplay];
|
||||
return;
|
||||
}
|
||||
|
||||
//Set progress
|
||||
[super setProgress:_animationFromValue + dt * (_animationToValue - _animationFromValue) animated:YES];
|
||||
[self setNeedsDisplay];
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated
|
||||
{
|
||||
//Do Nothing
|
||||
}
|
||||
|
||||
- (void)setIndeterminate:(BOOL)indeterminate
|
||||
{
|
||||
[super setIndeterminate:indeterminate];
|
||||
//Do Nothing
|
||||
}
|
||||
|
||||
#pragma mark Layout
|
||||
|
||||
- (void)layoutSubviews
|
||||
{
|
||||
[super layoutSubviews];
|
||||
_progressView.frame = self.bounds;
|
||||
}
|
||||
|
||||
- (CGSize)intrinsicContentSize
|
||||
{
|
||||
return CGSizeMake(UIViewNoIntrinsicMetric, UIViewNoIntrinsicMetric);
|
||||
}
|
||||
|
||||
#pragma mark Drawing
|
||||
|
||||
- (void)drawRect:(CGRect)rect
|
||||
{
|
||||
//Create the base CIImage
|
||||
CIImage *image = [CIImage imageWithCGImage:_progressImage.CGImage];
|
||||
//Change the values of the CIFilters before drawing
|
||||
for (int i = 0; i < _filters.count; i++) {
|
||||
CIFilter *filter = _filters[i];
|
||||
//For each filter
|
||||
NSDictionary *parameters = _filterParameters[i];
|
||||
//For each parameter
|
||||
for (NSString *parameterKey in parameters.allKeys) {
|
||||
//Retreive the values
|
||||
NSDictionary *parameterDict = parameters[parameterKey];
|
||||
CGFloat startValue = [parameterDict[kM13ProgressViewFilteredImageCIFilterStartValuesKey] floatValue];
|
||||
CGFloat endValue = [parameterDict[kM13ProgressViewFilteredImageCIFilterEndValuesKey] floatValue];
|
||||
//Calculate the current value
|
||||
CGFloat value = startValue + ((endValue - startValue) * self.progress);
|
||||
//Set the value
|
||||
[filter setValue:[NSNumber numberWithFloat:value] forKey:parameterKey];
|
||||
}
|
||||
//Set the input image
|
||||
[filter setValue:image forKey:kCIInputImageKey];
|
||||
image = filter.outputImage;
|
||||
}
|
||||
//Set the image of the image view.
|
||||
[_progressView setImage:[UIImage imageWithCIImage:image]];
|
||||
|
||||
[super drawRect:rect];
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,35 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewImage.h
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import "M13ProgressView.h"
|
||||
|
||||
typedef enum {
|
||||
M13ProgressViewImageProgressDirectionLeftToRight,
|
||||
M13ProgressViewImageProgressDirectionBottomToTop,
|
||||
M13ProgressViewImageProgressDirectionRightToLeft,
|
||||
M13ProgressViewImageProgressDirectionTopToBottom
|
||||
} M13ProgressViewImageProgressDirection;
|
||||
|
||||
/**A progress bar where progress is shown by cutting an image.
|
||||
@note This progress bar does not have in indeterminate mode and does not respond to actions.*/
|
||||
@interface M13ProgressViewImage : M13ProgressView
|
||||
|
||||
/**@name Appearance*/
|
||||
/**The image to use when showing progress.*/
|
||||
@property (nonatomic, retain) UIImage *progressImage;
|
||||
/**The direction of progress. (What direction the fill proceeds in.)*/
|
||||
@property (nonatomic, assign) M13ProgressViewImageProgressDirection progressDirection;
|
||||
/**Wether or not to draw the greyscale background.*/
|
||||
@property (nonatomic, assign) BOOL drawGreyscaleBackground;
|
||||
|
||||
@end
|
||||
@@ -1,269 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewImage.m
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import "M13ProgressViewImage.h"
|
||||
|
||||
@interface M13ProgressViewImage ()
|
||||
|
||||
/**The start progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationFromValue;
|
||||
/**The end progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationToValue;
|
||||
/**The start time interval for the animaiton.*/
|
||||
@property (nonatomic, assign) CFTimeInterval animationStartTime;
|
||||
/**Link to the display to keep animations in sync.*/
|
||||
@property (nonatomic, strong) CADisplayLink *displayLink;
|
||||
/**Allow us to write to the progress.*/
|
||||
@property (nonatomic, readwrite) CGFloat progress;
|
||||
/**The UIImageView that shows the progress image.*/
|
||||
@property (nonatomic, retain) UIImageView *progressView;
|
||||
|
||||
@end
|
||||
|
||||
@implementation M13ProgressViewImage
|
||||
|
||||
@dynamic progress;
|
||||
|
||||
#pragma mark Initalization and setup
|
||||
|
||||
- (id)init
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(NSCoder *)aDecoder
|
||||
{
|
||||
self = [super initWithCoder:aDecoder];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)setup
|
||||
{
|
||||
//Set own background color
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
|
||||
//Set defauts
|
||||
self.animationDuration = .3;
|
||||
_progressDirection = M13ProgressViewImageProgressDirectionLeftToRight;
|
||||
_drawGreyscaleBackground = YES;
|
||||
|
||||
//Set the progress view
|
||||
_progressView = [[UIImageView alloc] init];
|
||||
_progressView.frame = self.bounds;
|
||||
_progressView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
[self addSubview:_progressView];
|
||||
|
||||
//Layout
|
||||
[self layoutSubviews];
|
||||
}
|
||||
|
||||
#pragma mark Appearance
|
||||
|
||||
- (void)setProgressDirection:(M13ProgressViewImageProgressDirection)progressDirection
|
||||
{
|
||||
_progressDirection = progressDirection;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setDrawGreyscaleBackground:(BOOL)drawGreyscaleBackground
|
||||
{
|
||||
_drawGreyscaleBackground = drawGreyscaleBackground;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setProgressImage:(UIImage *)progressImage
|
||||
{
|
||||
_progressImage = progressImage;
|
||||
_progressView.image = _progressImage;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
#pragma mark Actions
|
||||
|
||||
- (void)setProgress:(CGFloat)progress animated:(BOOL)animated
|
||||
{
|
||||
if (animated == NO) {
|
||||
if (_displayLink) {
|
||||
//Kill running animations
|
||||
[_displayLink invalidate];
|
||||
_displayLink = nil;
|
||||
}
|
||||
[super setProgress:progress animated:NO];
|
||||
[self setNeedsDisplay];
|
||||
} else {
|
||||
_animationStartTime = CACurrentMediaTime();
|
||||
_animationFromValue = self.progress;
|
||||
_animationToValue = progress;
|
||||
if (!_displayLink) {
|
||||
//Create and setup the display link
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(animateProgress:)];
|
||||
[self.displayLink addToRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
|
||||
} /*else {
|
||||
//Reuse the current display link
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
- (void)animateProgress:(CADisplayLink *)displayLink
|
||||
{
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
CGFloat dt = (displayLink.timestamp - _animationStartTime) / self.animationDuration;
|
||||
if (dt >= 1.0) {
|
||||
//Order is important! Otherwise concurrency will cause errors, because setProgress: will detect an animation in progress and try to stop it by itself. Once over one, set to actual progress amount. Animation is over.
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = nil;
|
||||
[super setProgress:_animationToValue animated:NO];
|
||||
[self setNeedsDisplay];
|
||||
return;
|
||||
}
|
||||
|
||||
//Set progress
|
||||
[super setProgress:_animationFromValue + dt * (_animationToValue - _animationFromValue) animated:YES];
|
||||
[self setNeedsDisplay];
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated
|
||||
{
|
||||
//Do Nothing
|
||||
}
|
||||
|
||||
- (void)setIndeterminate:(BOOL)indeterminate
|
||||
{
|
||||
[super setIndeterminate:indeterminate];
|
||||
//Do Nothing
|
||||
}
|
||||
|
||||
#pragma mark Layout
|
||||
|
||||
- (void)layoutSubviews
|
||||
{
|
||||
[super layoutSubviews];
|
||||
_progressView.frame = self.bounds;
|
||||
}
|
||||
|
||||
- (CGSize)intrinsicContentSize
|
||||
{
|
||||
return CGSizeMake(UIViewNoIntrinsicMetric, UIViewNoIntrinsicMetric);
|
||||
}
|
||||
|
||||
#pragma mark Drawing
|
||||
|
||||
- (void)drawRect:(CGRect)rect
|
||||
{
|
||||
[super drawRect:rect];
|
||||
|
||||
[_progressView setImage:[self createImageForCurrentProgress]];
|
||||
}
|
||||
|
||||
- (UIImage *)createImageForCurrentProgress
|
||||
{
|
||||
const int ALPHA = 0;
|
||||
const int RED = 1;
|
||||
const int GREEN = 2;
|
||||
const int BLUE = 3;
|
||||
|
||||
//Create image rectangle with current image width/height
|
||||
CGRect imageRect = CGRectMake(0, 0, _progressImage.size.width * _progressImage.scale, _progressImage.size.height * _progressImage.scale);
|
||||
|
||||
int width = imageRect.size.width;
|
||||
int height = imageRect.size.height;
|
||||
|
||||
//The pixels will be painted to this array
|
||||
uint32_t *pixels = (uint32_t *) malloc(width * height * sizeof(uint32_t));
|
||||
|
||||
//Clear the pixels so any transparency is preserved
|
||||
memset(pixels, 0, width * height * sizeof(uint32_t));
|
||||
|
||||
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
|
||||
|
||||
//Create a context with RGBA pixels
|
||||
CGContextRef context = CGBitmapContextCreate(pixels, width, height, 8, width * sizeof(uint32_t), colorSpace, kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedLast);
|
||||
|
||||
//Paint the bitmap to our context which will fill in the pixels array
|
||||
CGContextDrawImage(context, CGRectMake(0, 0, width, height), _progressImage.CGImage);
|
||||
|
||||
//Calculate the ranges to make greyscale or transparent.
|
||||
int xFrom = 0;
|
||||
int xTo = width;
|
||||
int yFrom = 0;
|
||||
int yTo = height;
|
||||
|
||||
if (_progressDirection == M13ProgressViewImageProgressDirectionBottomToTop) {
|
||||
yTo = height * (1 - self.progress);
|
||||
} else if (_progressDirection == M13ProgressViewImageProgressDirectionTopToBottom) {
|
||||
yFrom = height * self.progress;
|
||||
} else if (_progressDirection == M13ProgressViewImageProgressDirectionLeftToRight) {
|
||||
xFrom = width * self.progress;
|
||||
} else if (_progressDirection == M13ProgressViewImageProgressDirectionRightToLeft) {
|
||||
xTo = width * (1 - self.progress);
|
||||
}
|
||||
|
||||
for (int x = xFrom; x < xTo; x++) {
|
||||
for (int y = yFrom; y < yTo; y++) {
|
||||
//Get the pixel
|
||||
uint8_t *rgbaPixel = (uint8_t *) &pixels[y * width + x];
|
||||
//Convert
|
||||
if (_drawGreyscaleBackground) {
|
||||
//Convert to grayscale using luma coding: http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale
|
||||
uint32_t gray = 0.3 * rgbaPixel[RED] + 0.59 * rgbaPixel[GREEN] + 0.11 * rgbaPixel[BLUE];
|
||||
// set the pixels to gray
|
||||
rgbaPixel[RED] = gray;
|
||||
rgbaPixel[GREEN] = gray;
|
||||
rgbaPixel[BLUE] = gray;
|
||||
} else {
|
||||
//Convert the pixels to transparant
|
||||
rgbaPixel[RED] = 0;
|
||||
rgbaPixel[GREEN] = 0;
|
||||
rgbaPixel[BLUE] = 0;
|
||||
rgbaPixel[ALPHA] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// create a new CGImageRef from our context with the modified pixels
|
||||
CGImageRef image = CGBitmapContextCreateImage(context);
|
||||
|
||||
// we're done with the context, color space, and pixels
|
||||
CGContextRelease(context);
|
||||
CGColorSpaceRelease(colorSpace);
|
||||
free(pixels);
|
||||
|
||||
// make a new UIImage to return
|
||||
UIImage *resultUIImage = [UIImage imageWithCGImage:image scale:_progressImage.scale orientation:UIImageOrientationUp];
|
||||
|
||||
// we're done with image now too
|
||||
CGImageRelease(image);
|
||||
|
||||
return resultUIImage;
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,47 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewLetterpress.h
|
||||
// M13ProgressSuite
|
||||
//
|
||||
// Created by Brandon McQuilkin on 4/28/14.
|
||||
// Copyright (c) 2014 Brandon McQuilkin. All rights reserved.
|
||||
//
|
||||
|
||||
#import "M13ProgressView.h"
|
||||
|
||||
typedef enum {
|
||||
M13ProgressViewLetterpressPointShapeSquare,
|
||||
M13ProgressViewLetterpressPointShapeCircle
|
||||
} M13ProgressViewLetterpressPointShape;
|
||||
|
||||
@interface M13ProgressViewLetterpress : M13ProgressView
|
||||
/**@name Properties*/
|
||||
/**
|
||||
The number of grid points in each direction.
|
||||
*/
|
||||
@property (nonatomic, assign) CGPoint numberOfGridPoints;
|
||||
/**
|
||||
The shape of the grid points.
|
||||
*/
|
||||
@property (nonatomic, assign) M13ProgressViewLetterpressPointShape pointShape;
|
||||
/**
|
||||
The amount of space between the grid points, as a percentage of the point's size.
|
||||
*/
|
||||
@property (nonatomic, assign) CGFloat pointSpacing;
|
||||
/**
|
||||
The size of the notch to carve out on one side.
|
||||
*/
|
||||
@property (nonatomic, assign) CGSize notchSize;
|
||||
/**
|
||||
The spring constant that defines the amount of "spring" the progress view has in its animation.
|
||||
*/
|
||||
@property (nonatomic, assign) CGFloat springConstant;
|
||||
/**
|
||||
The constant that determines how long the progress view "bounces" for.
|
||||
*/
|
||||
@property (nonatomic, assign) CGFloat dampingCoefficient;
|
||||
/**
|
||||
The constant that determines how much the springConstant and dampingCoefficent affect the animation.
|
||||
*/
|
||||
@property (nonatomic, assign) CGFloat mass;
|
||||
|
||||
@end
|
||||
@@ -1,300 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewLetterpress.m
|
||||
// M13ProgressSuite
|
||||
//
|
||||
// Created by Brandon McQuilkin on 4/28/14.
|
||||
// Copyright (c) 2014 Brandon McQuilkin. All rights reserved.
|
||||
//
|
||||
|
||||
#import "M13ProgressViewLetterpress.h"
|
||||
|
||||
@interface LetterpressView : UIView
|
||||
|
||||
@property (nonatomic, strong) M13ProgressViewLetterpress *progressView;
|
||||
@property (nonatomic, assign) CGRect drawRect;
|
||||
|
||||
@end
|
||||
|
||||
@interface M13ProgressViewLetterpress ()
|
||||
|
||||
/**The start progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationFromValue;
|
||||
/**The end progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationToValue;
|
||||
/**The start time interval for the animaiton.*/
|
||||
@property (nonatomic, assign) CFTimeInterval animationStartTime;
|
||||
/**Link to the display to keep animations in sync.*/
|
||||
@property (nonatomic, strong) CADisplayLink *displayLink;
|
||||
/**
|
||||
The display link that controls the spring animation.
|
||||
*/
|
||||
@property (nonatomic, strong) CADisplayLink *springDisplayLink;
|
||||
|
||||
@end
|
||||
|
||||
@implementation M13ProgressViewLetterpress
|
||||
{
|
||||
CGFloat rotation;
|
||||
CGFloat restRotation;
|
||||
CGFloat velocity;
|
||||
LetterpressView *letterpressView;
|
||||
}
|
||||
|
||||
- (id)init
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(NSCoder *)aDecoder
|
||||
{
|
||||
self = [super initWithCoder:aDecoder];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[_springDisplayLink invalidate];
|
||||
}
|
||||
|
||||
- (void)setup
|
||||
{
|
||||
//Set defauts
|
||||
self.animationDuration = 1.0;
|
||||
_numberOfGridPoints = CGPointMake(3, 3);
|
||||
_notchSize = CGSizeMake(1, 1);
|
||||
_pointShape = M13ProgressViewLetterpressPointShapeCircle;
|
||||
_pointSpacing = 0.0;
|
||||
|
||||
rotation = 0;
|
||||
restRotation = 0;
|
||||
_springConstant = 200;
|
||||
_dampingCoefficient = 15;
|
||||
_mass = 1;
|
||||
velocity = 0;
|
||||
|
||||
//Set default colors
|
||||
self.primaryColor = [UIColor colorWithRed:0 green:122/255.0 blue:1.0 alpha:1.0];
|
||||
self.secondaryColor = [UIColor colorWithRed:181/255.0 green:182/255.0 blue:183/255.0 alpha:1.0];
|
||||
|
||||
//Draw and animate a sublayer, since autolayout does not like CATransforms.
|
||||
letterpressView = [[LetterpressView alloc] init];
|
||||
letterpressView.backgroundColor = [UIColor clearColor];
|
||||
letterpressView.progressView = self;
|
||||
[self setFrame:self.frame];
|
||||
|
||||
[self addSubview:letterpressView];
|
||||
|
||||
//Set own background color
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
self.clipsToBounds = NO;
|
||||
|
||||
//Setup the display link for rotation
|
||||
_springDisplayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(rotateWithDisplayLink:)];
|
||||
[_springDisplayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:(id)kCFRunLoopCommonModes];
|
||||
|
||||
}
|
||||
|
||||
- (void)setFrame:(CGRect)frame
|
||||
{
|
||||
[super setFrame:frame];
|
||||
//Need to inset the layer since we don't want the corner's cliped
|
||||
CGFloat radius = MIN(self.frame.size.width, self.frame.size.height);
|
||||
CGFloat size = radius / sqrtf(2.0);
|
||||
letterpressView.drawRect = CGRectIntegral(CGRectMake((self.frame.size.width - size) / 2.0, (self.frame.size.height - size) / 2.0, size, size));
|
||||
letterpressView.frame = CGRectIntegral(CGRectMake((self.frame.size.width - size) / 2.0, (self.frame.size.height - size) / 2.0, size, size));
|
||||
}
|
||||
|
||||
- (void)setNeedsDisplay
|
||||
{
|
||||
[super setNeedsDisplay];
|
||||
[letterpressView setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (CGSize)intrinsicContentSize
|
||||
{
|
||||
//Everything is based on scale. No minimum size.
|
||||
return CGSizeMake(UIViewNoIntrinsicMetric, UIViewNoIntrinsicMetric);
|
||||
}
|
||||
|
||||
#pragma mark - Properties
|
||||
|
||||
- (void)setNumberOfGridPoints:(CGPoint)numberOfGridPoints
|
||||
{
|
||||
_numberOfGridPoints = numberOfGridPoints;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setPointShape:(M13ProgressViewLetterpressPointShape)pointShape
|
||||
{
|
||||
_pointShape = pointShape;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setPointSpacing:(CGFloat)pointSpacing
|
||||
{
|
||||
if (pointSpacing > 1) {
|
||||
pointSpacing = 1;
|
||||
} else if (pointSpacing < 0) {
|
||||
pointSpacing = 0;
|
||||
}
|
||||
_pointSpacing = pointSpacing;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setNotchSize:(CGSize)notchSize
|
||||
{
|
||||
_notchSize = notchSize;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
#pragma mark - Animation
|
||||
|
||||
- (void)setProgress:(CGFloat)progress animated:(BOOL)animated
|
||||
{
|
||||
if (animated == NO) {
|
||||
if (_displayLink) {
|
||||
//Kill running animations
|
||||
[_displayLink invalidate];
|
||||
_displayLink = nil;
|
||||
}
|
||||
[super setProgress:progress animated:NO];
|
||||
[self setNeedsDisplay];
|
||||
} else {
|
||||
_animationStartTime = CACurrentMediaTime();
|
||||
_animationFromValue = self.progress;
|
||||
_animationToValue = progress;
|
||||
if (!_displayLink) {
|
||||
//Create and setup the display link
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(animateProgress:)];
|
||||
[self.displayLink addToRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
|
||||
} /*else {
|
||||
//Reuse the current display link
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
- (void)animateProgress:(CADisplayLink *)displayLink
|
||||
{
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
CGFloat dt = (displayLink.timestamp - _animationStartTime) / self.animationDuration;
|
||||
if (dt >= 1.0) {
|
||||
//Order is important! Otherwise concurrency will cause errors, because setProgress: will detect an animation in progress and try to stop it by itself. Once over one, set to actual progress amount. Animation is over.
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = nil;
|
||||
[super setProgress:_animationToValue animated:NO];
|
||||
[self setNeedsDisplay];
|
||||
return;
|
||||
}
|
||||
|
||||
//Set progress
|
||||
[super setProgress:_animationFromValue + dt * (_animationToValue - _animationFromValue) animated:YES];
|
||||
[self setNeedsDisplay];
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
- (void)rotateWithDisplayLink:(CADisplayLink *)displayLink
|
||||
{
|
||||
//Take account for lag
|
||||
for (int i = 0; i < displayLink.frameInterval; i++){
|
||||
|
||||
//Calculate the new angle
|
||||
CGFloat displacement = rotation - restRotation;
|
||||
CGFloat kx = _springConstant * displacement;
|
||||
CGFloat bv = _dampingCoefficient * velocity;
|
||||
CGFloat acceleration = (kx + bv) / _mass;
|
||||
|
||||
velocity -= (acceleration * displayLink.duration);
|
||||
rotation += (velocity * displayLink.duration);
|
||||
|
||||
//Set the angle
|
||||
[letterpressView setTransform:CGAffineTransformMakeRotation(rotation * M_PI / 180)];
|
||||
|
||||
UIView *view = [[self subviews] lastObject];
|
||||
[view setTransform:CGAffineTransformMakeRotation(rotation * M_PI / 180)];
|
||||
|
||||
//If we are slowing down, animate to a new angle.
|
||||
if (fabs(velocity) < 1) {
|
||||
restRotation += (arc4random() & 2 ? 90 : -90);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation LetterpressView
|
||||
|
||||
#pragma mark - Drawing
|
||||
|
||||
- (void)drawRect:(CGRect)rect
|
||||
{
|
||||
CGContextRef ctx = UIGraphicsGetCurrentContext();
|
||||
|
||||
//Calculate the corners of the square of the points that we will not draw
|
||||
CGPoint ignoreTopLeft = CGPointMake((_progressView.numberOfGridPoints.x - _progressView.notchSize.width) / 2, 0);
|
||||
CGPoint ignoreBottomRight = CGPointMake(_progressView.numberOfGridPoints.x - ((_progressView.numberOfGridPoints.x - _progressView.notchSize.width) / 2), (_progressView.numberOfGridPoints.y - _progressView.notchSize.height) / 2);
|
||||
//Calculate the point size
|
||||
CGSize pointSize = CGSizeMake(_drawRect.size.width / _progressView.numberOfGridPoints.x, _drawRect.size.height / _progressView.numberOfGridPoints.y);
|
||||
|
||||
//Setup
|
||||
CGRect pointRect = CGRectZero;
|
||||
int index = -1;
|
||||
int indexToFillTo = _progressView.numberOfGridPoints.x * _progressView.numberOfGridPoints.y * _progressView.progress;
|
||||
|
||||
//Draw
|
||||
for (int y = _progressView.numberOfGridPoints.y - 1; y >= 0; y--) {
|
||||
for (int x = 0; x < _progressView.numberOfGridPoints.x; x++) {
|
||||
|
||||
index += 1;
|
||||
|
||||
//Are we in a forbidden zone
|
||||
if (x >= ignoreTopLeft.x && x < ignoreBottomRight.x && y >= ignoreTopLeft.y && y < ignoreBottomRight.y) {
|
||||
//Move to the next point
|
||||
continue;
|
||||
}
|
||||
|
||||
//Calculat the rect of the point
|
||||
pointRect.size = pointSize;
|
||||
pointRect.origin = CGPointMake(pointSize.width * x, pointSize.height * y);
|
||||
pointRect = CGRectInset(pointRect, pointSize.width * _progressView.pointSpacing, pointSize.height * _progressView.pointSpacing);
|
||||
|
||||
//Set the fill color
|
||||
if (index < indexToFillTo) {
|
||||
CGContextSetFillColorWithColor(ctx, _progressView.primaryColor.CGColor);
|
||||
} else {
|
||||
CGContextSetFillColorWithColor(ctx, _progressView.secondaryColor.CGColor);
|
||||
}
|
||||
|
||||
//Draw the shape
|
||||
if (_progressView.pointShape == M13ProgressViewLetterpressPointShapeSquare) {
|
||||
CGContextFillRect(ctx, pointRect);
|
||||
} else if (_progressView.pointShape == M13ProgressViewLetterpressPointShapeCircle) {
|
||||
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:pointRect cornerRadius:(pointRect.size.width / 2.0)];
|
||||
CGContextBeginPath(ctx);
|
||||
CGContextAddPath(ctx, path.CGPath);
|
||||
CGContextFillPath(ctx);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@end
|
||||
@@ -1,62 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewMetro.h
|
||||
// M13ProgressSuite
|
||||
//
|
||||
// Created by Brandon McQuilkin on 3/8/14.
|
||||
// Copyright (c) 2014 Brandon McQuilkin. All rights reserved.
|
||||
//
|
||||
|
||||
#import "M13ProgressView.h"
|
||||
|
||||
typedef enum {
|
||||
M13ProgressViewMetroAnimationShapeEllipse,
|
||||
M13ProgressViewMetroAnimationShapeRectangle,
|
||||
M13ProgressViewMetroAnimationShapeLine
|
||||
} M13ProgressViewMetroAnimationShape;
|
||||
|
||||
/**The layer that the `M13ProgressViewMetro` animates.*/
|
||||
@interface M13ProgressViewMetroDot : CALayer
|
||||
|
||||
/**Wether or not the dot is highlighted. The dot becomes highlighted to show progress.*/
|
||||
@property (nonatomic, assign) BOOL highlighted;
|
||||
/**The color to show on success.*/
|
||||
@property (nonatomic, retain) UIColor *successColor;
|
||||
/**The color to show on failure.*/
|
||||
@property (nonatomic, retain) UIColor *failureColor;
|
||||
/**The primary color of the dot.*/
|
||||
@property (nonatomic, retain) UIColor *primaryColor;
|
||||
/**The secondary color of the dot.*/
|
||||
@property (nonatomic, retain) UIColor *secondaryColor;
|
||||
/**Perform the given action if defined. Usually showing success or failure.
|
||||
@param action The action to perform.
|
||||
@param animated Wether or not to animate the change*/
|
||||
- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated;
|
||||
|
||||
@end
|
||||
|
||||
/**A progress view based off of Windows 8's progress animation.*/
|
||||
@interface M13ProgressViewMetro : M13ProgressView
|
||||
|
||||
/**@name Properties*/
|
||||
/**The number of dots in the animation.*/
|
||||
@property (nonatomic, assign) NSUInteger numberOfDots;
|
||||
/**The shape of the animation.*/
|
||||
@property (nonatomic, assign) M13ProgressViewMetroAnimationShape animationShape;
|
||||
/**The size of the dots*/
|
||||
@property (nonatomic, assign) CGSize dotSize;
|
||||
/**The dot to display.*/
|
||||
@property (nonatomic, retain) M13ProgressViewMetroDot *metroDot;
|
||||
/**@name Appearance*/
|
||||
/**The color to show on success.*/
|
||||
@property (nonatomic, retain) UIColor *successColor;
|
||||
/**The color to show on failure.*/
|
||||
@property (nonatomic, retain) UIColor *failureColor;
|
||||
/**@name Actions*/
|
||||
/**Wether or not the progress view animating.*/
|
||||
- (BOOL)isAnimating;
|
||||
/**Begin the animation.*/
|
||||
- (void)beginAnimating;
|
||||
/**End the animation.*/
|
||||
- (void)stopAnimating;
|
||||
|
||||
@end
|
||||
@@ -1,378 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewMetro.m
|
||||
// M13ProgressSuite
|
||||
//
|
||||
// Created by Brandon McQuilkin on 3/8/14.
|
||||
// Copyright (c) 2014 Brandon McQuilkin. All rights reserved.
|
||||
//
|
||||
|
||||
#import "M13ProgressViewMetro.h"
|
||||
#import "M13ProgressViewMetroDotPolygon.h"
|
||||
|
||||
@interface M13ProgressViewMetro ()
|
||||
|
||||
/**The start progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationFromValue;
|
||||
/**The end progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationToValue;
|
||||
/**The start time interval for the animaiton.*/
|
||||
@property (nonatomic, assign) CFTimeInterval animationStartTime;
|
||||
/**Link to the display to keep animations in sync.*/
|
||||
@property (nonatomic, strong) CADisplayLink *displayLink;
|
||||
|
||||
@end
|
||||
|
||||
@implementation M13ProgressViewMetroDot
|
||||
{
|
||||
M13ProgressViewAction currentAction;
|
||||
}
|
||||
|
||||
#pragma mark Initalization
|
||||
|
||||
- (id)init
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(NSCoder *)aDecoder
|
||||
{
|
||||
self = [super initWithCoder:aDecoder];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithLayer:(id)layer
|
||||
{
|
||||
self = [super initWithLayer:layer];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
+ (id)layer
|
||||
{
|
||||
return [[M13ProgressViewMetroDot alloc] init];
|
||||
}
|
||||
|
||||
- (void)setup
|
||||
{
|
||||
_highlighted = NO;
|
||||
currentAction = M13ProgressViewActionNone;
|
||||
_primaryColor = [UIColor colorWithRed:0 green:122/255.0 blue:1.0 alpha:1.0];
|
||||
_secondaryColor = [UIColor colorWithRed:181/255.0 green:182/255.0 blue:183/255.0 alpha:1.0];
|
||||
_successColor = [UIColor colorWithRed:63.0f/255.0f green:226.0f/255.0f blue:80.0f/255.0f alpha:1];
|
||||
_failureColor = [UIColor colorWithRed:249.0f/255.0f green:37.0f/255.0f blue:0 alpha:1];
|
||||
}
|
||||
|
||||
#pragma mark Setters
|
||||
|
||||
- (void)setHighlighted:(BOOL)highlighted
|
||||
{
|
||||
_highlighted = highlighted;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setSuccessColor:(UIColor *)successColor
|
||||
{
|
||||
_successColor = successColor;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setFailureColor:(UIColor *)failureColor
|
||||
{
|
||||
_failureColor = failureColor;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setPrimaryColor:(UIColor *)primaryColor
|
||||
{
|
||||
_primaryColor = primaryColor;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setSecondaryColor:(UIColor *)secondaryColor
|
||||
{
|
||||
_secondaryColor = secondaryColor;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated
|
||||
{
|
||||
currentAction = action;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation M13ProgressViewMetro
|
||||
{
|
||||
BOOL animating;
|
||||
NSUInteger currentNumberOfDots;
|
||||
NSTimer *animationTimer;
|
||||
UIBezierPath *animationPath;
|
||||
NSMutableArray *dots;
|
||||
|
||||
CGFloat circleSize;
|
||||
}
|
||||
|
||||
- (id)init
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(NSCoder *)aDecoder
|
||||
{
|
||||
self = [super initWithCoder:aDecoder];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)setup
|
||||
{
|
||||
//Set defaults
|
||||
self.clipsToBounds = YES;
|
||||
animating = NO;
|
||||
_numberOfDots = 6;
|
||||
_dotSize = CGSizeMake(20, 20);
|
||||
self.animationDuration = 1.5;
|
||||
self.animationShape = M13ProgressViewMetroAnimationShapeEllipse;
|
||||
self.primaryColor = [UIColor colorWithRed:0 green:122/255.0 blue:1.0 alpha:1.0];
|
||||
self.secondaryColor = [UIColor colorWithRed:181/255.0 green:182/255.0 blue:183/255.0 alpha:1.0];
|
||||
_successColor = [UIColor colorWithRed:63.0f/255.0f green:226.0f/255.0f blue:80.0f/255.0f alpha:1];
|
||||
_failureColor = [UIColor colorWithRed:249.0f/255.0f green:37.0f/255.0f blue:0 alpha:1];
|
||||
_metroDot = [[M13ProgressViewMetroDotPolygon alloc] init];
|
||||
}
|
||||
|
||||
#pragma mark Properties
|
||||
|
||||
- (void)setFrame:(CGRect)frame
|
||||
{
|
||||
[super setFrame:frame];
|
||||
if (animating) {
|
||||
[self stopAnimating];
|
||||
[self beginAnimating];
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL)isAnimating
|
||||
{
|
||||
return animating;
|
||||
}
|
||||
|
||||
- (void)setAnimationShape:(M13ProgressViewMetroAnimationShape)animationShape
|
||||
{
|
||||
_animationShape = animationShape;
|
||||
if (_animationShape == M13ProgressViewMetroAnimationShapeEllipse) {
|
||||
//Inset the size of the dot
|
||||
CGFloat radius = MIN((self.bounds.size.width - _dotSize.width) / 2, (self.bounds.size.height - _dotSize.height) / 2);
|
||||
//Create the path
|
||||
animationPath = [UIBezierPath bezierPathWithArcCenter:CGPointMake(self.bounds.size.width / 2, self.bounds.size.height / 2) radius:radius startAngle:M_PI_2 endAngle:(-M_PI_2 * 3) clockwise:YES];
|
||||
} else if (_animationShape == M13ProgressViewMetroAnimationShapeRectangle) {
|
||||
//Inset the size of the dot
|
||||
CGRect pathRect = CGRectInset(self.bounds, _dotSize.width, _dotSize.height);
|
||||
//Create the path
|
||||
animationPath = [UIBezierPath bezierPath];
|
||||
[animationPath moveToPoint:CGPointMake((pathRect.size.width / 2) + pathRect.origin.x, pathRect.size.height + pathRect.origin.y)];
|
||||
[animationPath addLineToPoint:CGPointMake(pathRect.origin.x, pathRect.size.height + pathRect.origin.y)];
|
||||
[animationPath addLineToPoint:CGPointMake(pathRect.origin.x, pathRect.origin.y)];
|
||||
[animationPath addLineToPoint:CGPointMake(pathRect.origin.x + pathRect.size.width, pathRect.origin.y)];
|
||||
[animationPath addLineToPoint:CGPointMake(pathRect.origin.x + pathRect.size.width, pathRect.origin.y + pathRect.size.height)];
|
||||
[animationPath moveToPoint:CGPointMake((pathRect.size.width / 2) + pathRect.origin.x, pathRect.size.height + pathRect.origin.y)];
|
||||
} else if (animationShape == M13ProgressViewMetroAnimationShapeLine) {
|
||||
//Create the path
|
||||
animationPath = [UIBezierPath bezierPath];
|
||||
[animationPath moveToPoint:CGPointMake(-_dotSize.width, self.bounds.size.height / 2)];
|
||||
[animationPath addLineToPoint:CGPointMake(self.bounds.size.width + _dotSize.width, self.bounds.size.height / 2)];
|
||||
}
|
||||
[self stopAnimating];
|
||||
[self beginAnimating];
|
||||
}
|
||||
|
||||
- (void)setNumberOfDots:(NSUInteger)numberOfDots
|
||||
{
|
||||
_numberOfDots = numberOfDots;
|
||||
[self invalidateIntrinsicContentSize];
|
||||
[self stopAnimating];
|
||||
[self beginAnimating];
|
||||
}
|
||||
|
||||
- (void)setDotSize:(CGSize)dotSize
|
||||
{
|
||||
_dotSize = dotSize;
|
||||
[self invalidateIntrinsicContentSize];
|
||||
[self stopAnimating];
|
||||
[self beginAnimating];
|
||||
}
|
||||
|
||||
- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated
|
||||
{
|
||||
for (M13ProgressViewMetroDot *dot in dots) {
|
||||
[dot performAction:action animated:animated];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setProgress:(CGFloat)progress animated:(BOOL)animated
|
||||
{
|
||||
if (animated == NO) {
|
||||
if (_displayLink) {
|
||||
//Kill running animations
|
||||
[_displayLink invalidate];
|
||||
_displayLink = nil;
|
||||
}
|
||||
[super setProgress:progress animated:NO];
|
||||
[self showProgress];
|
||||
} else {
|
||||
_animationStartTime = CACurrentMediaTime();
|
||||
_animationFromValue = self.progress;
|
||||
_animationToValue = progress;
|
||||
if (!_displayLink) {
|
||||
//Create and setup the display link
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(animateProgress:)];
|
||||
[self.displayLink addToRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
|
||||
} /*else {
|
||||
//Reuse the current display link
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
- (void)animateProgress:(CADisplayLink *)displayLink
|
||||
{
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
CGFloat dt = (displayLink.timestamp - _animationStartTime) / self.animationDuration;
|
||||
if (dt >= 1.0) {
|
||||
//Order is important! Otherwise concurrency will cause errors, because setProgress: will detect an animation in progress and try to stop it by itself. Once over one, set to actual progress amount. Animation is over.
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = nil;
|
||||
[super setProgress:_animationToValue animated:NO];
|
||||
[self showProgress];
|
||||
return;
|
||||
}
|
||||
|
||||
//Set progress
|
||||
[super setProgress:_animationFromValue + dt * (_animationToValue - _animationFromValue) animated:YES];
|
||||
[self showProgress];
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
- (void)showProgress
|
||||
{
|
||||
static int pastIndexToHighlightTo = 0;
|
||||
int indexToHighlightTo = ceilf(_numberOfDots * self.progress);
|
||||
//Only perform the animation if necessary.
|
||||
if (pastIndexToHighlightTo != indexToHighlightTo) {
|
||||
for (int i = 0; i < _numberOfDots; i++) {
|
||||
M13ProgressViewMetroDot *dot = dots[i];
|
||||
if (i <= indexToHighlightTo && self.progress != 0) {
|
||||
dot.highlighted = YES;
|
||||
} else {
|
||||
dot.highlighted = NO;
|
||||
}
|
||||
}
|
||||
pastIndexToHighlightTo = indexToHighlightTo;
|
||||
}
|
||||
}
|
||||
|
||||
- (CGSize)intrinsicContentSize
|
||||
{
|
||||
//No real constraint on size.
|
||||
if (_animationShape == M13ProgressViewMetroAnimationShapeEllipse || _animationShape == M13ProgressViewMetroAnimationShapeRectangle) {
|
||||
return CGSizeMake(3 * _dotSize.width, 3 * _dotSize.height);
|
||||
} else {
|
||||
return CGSizeMake(_dotSize.width * _numberOfDots, _dotSize.height);
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark Animation
|
||||
|
||||
-(void)beginAnimating
|
||||
{
|
||||
if (!animating){
|
||||
|
||||
animating = YES;
|
||||
|
||||
currentNumberOfDots = 0;
|
||||
dots = [[NSMutableArray alloc] init];
|
||||
|
||||
//add circles
|
||||
animationTimer = [NSTimer scheduledTimerWithTimeInterval: 0.20 target: self
|
||||
selector: @selector(createCircle) userInfo: nil repeats: YES];
|
||||
}
|
||||
}
|
||||
|
||||
-(void)createCircle
|
||||
{
|
||||
if (currentNumberOfDots<_numberOfDots){
|
||||
|
||||
currentNumberOfDots ++;
|
||||
CGRect f;
|
||||
if (_animationShape != M13ProgressViewMetroAnimationShapeLine) {
|
||||
f = CGRectMake((self.frame.size.width - _dotSize.width) / 2 - 1, self.frame.size.height - _dotSize.height - 1, _dotSize.width, _dotSize.height);
|
||||
} else {
|
||||
f = CGRectMake(- _dotSize.width, self.bounds.size.height / 2, _dotSize.width, _dotSize.height);
|
||||
}
|
||||
M13ProgressViewMetroDot *dotLayer = [_metroDot copy];
|
||||
dotLayer.frame = f;
|
||||
[self.layer addSublayer:dotLayer];
|
||||
[dots addObject:dotLayer];
|
||||
|
||||
CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
|
||||
animation.duration = self.animationDuration;
|
||||
animation.timingFunction = [CAMediaTimingFunction functionWithControlPoints:0.15f :0.60f :0.85f :0.4f];
|
||||
[animation setCalculationMode:kCAAnimationPaced];
|
||||
animation.path = animationPath.CGPath;
|
||||
animation.repeatCount = HUGE_VALF;
|
||||
|
||||
if (_animationShape != M13ProgressViewMetroAnimationShapeLine) {
|
||||
//No delay needed
|
||||
[dotLayer addAnimation:animation forKey:@"metroAnimation"];
|
||||
} else {
|
||||
//Delay repeat
|
||||
animation.repeatCount = 1;
|
||||
CAAnimationGroup *group = [CAAnimationGroup animation];
|
||||
group.duration = self.animationDuration * 2;
|
||||
group.animations = @[animation];
|
||||
group.repeatCount = HUGE_VALF;
|
||||
[dotLayer addAnimation:group forKey:@"metroAnimation"];
|
||||
}
|
||||
|
||||
|
||||
} else {
|
||||
[animationTimer invalidate];
|
||||
}
|
||||
}
|
||||
|
||||
-(void)stopAnimating
|
||||
{
|
||||
animating = NO;
|
||||
[animationTimer invalidate];
|
||||
for (CALayer *layer in dots) {
|
||||
[layer removeAllAnimations];
|
||||
[layer removeFromSuperlayer];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,21 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewMetroDotShape.h
|
||||
// M13ProgressSuite
|
||||
//
|
||||
// Created by Brandon McQuilkin on 3/9/14.
|
||||
// Copyright (c) 2014 Brandon McQuilkin. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "M13ProgressViewMetro.h"
|
||||
|
||||
/**A subclass of M13ProgressViewMetroDot.*/
|
||||
@interface M13ProgressViewMetroDotPolygon : M13ProgressViewMetroDot
|
||||
|
||||
/**The number of sides the polygon has.
|
||||
@note if set less than 3, the polygon will be a circle.*/
|
||||
@property (nonatomic, assign) NSUInteger numberOfSides;
|
||||
/**The radius of the polygon.*/
|
||||
@property (nonatomic, assign) CGFloat radius;
|
||||
|
||||
@end
|
||||
@@ -1,100 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewMetroDotShape.m
|
||||
// M13ProgressSuite
|
||||
//
|
||||
// Created by Brandon McQuilkin on 3/9/14.
|
||||
// Copyright (c) 2014 Brandon McQuilkin. All rights reserved.
|
||||
//
|
||||
|
||||
#import "M13ProgressViewMetroDotPolygon.h"
|
||||
|
||||
@implementation M13ProgressViewMetroDotPolygon
|
||||
{
|
||||
CAShapeLayer *shapeLayer;
|
||||
M13ProgressViewAction currentAction;
|
||||
}
|
||||
|
||||
- (void)setNumberOfSides:(NSUInteger)numberOfSides
|
||||
{
|
||||
_numberOfSides = numberOfSides;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setRadius:(CGFloat)radius
|
||||
{
|
||||
_radius = radius;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (NSArray *)verticies
|
||||
{
|
||||
if (_numberOfSides < 3) {
|
||||
return nil;
|
||||
} else {
|
||||
NSMutableArray *pointsArray = [NSMutableArray array];
|
||||
for (int i = 0; i < _numberOfSides; i++) {
|
||||
CGPoint point = CGPointMake(_radius * cosf((2.0 * M_PI * (float)i) / (float)_numberOfSides), _radius * sinf((2.0 * M_PI * (float)i) / (float)_numberOfSides));
|
||||
NSValue *value = [NSValue valueWithCGPoint:point];
|
||||
[pointsArray addObject:value];
|
||||
}
|
||||
return pointsArray;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)drawInContext:(CGContextRef)ctx
|
||||
{
|
||||
//Create and add the polygon layer if it does not exist
|
||||
if (shapeLayer == nil) {
|
||||
shapeLayer = [CAShapeLayer layer];
|
||||
[self addSublayer:shapeLayer];
|
||||
}
|
||||
//Create the path for the polygon
|
||||
UIBezierPath *path = [UIBezierPath bezierPath];
|
||||
NSArray *verticies = [self verticies];
|
||||
if (verticies == nil) {
|
||||
//Draw circle
|
||||
path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, _radius * 2, _radius * 2)];
|
||||
} else {
|
||||
[path moveToPoint:((NSValue *)verticies[0]).CGPointValue];
|
||||
for (int i = 1; i < verticies.count; i++) {
|
||||
[path addLineToPoint:((NSValue *)verticies[i]).CGPointValue];
|
||||
}
|
||||
[path closePath];
|
||||
}
|
||||
//Set the shape layer's path
|
||||
shapeLayer.path = path.CGPath;
|
||||
|
||||
//Set the color of the polygon
|
||||
shapeLayer.fillColor = self.secondaryColor.CGColor;
|
||||
if (self.highlighted) {
|
||||
shapeLayer.fillColor = self.primaryColor.CGColor;
|
||||
}
|
||||
if (currentAction == M13ProgressViewActionSuccess) {
|
||||
shapeLayer.fillColor = self.successColor.CGColor;
|
||||
} else if (currentAction == M13ProgressViewActionFailure) {
|
||||
shapeLayer.fillColor = self.failureColor.CGColor;
|
||||
}
|
||||
|
||||
//Draw
|
||||
[super drawInContext:ctx];
|
||||
}
|
||||
|
||||
- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated
|
||||
{
|
||||
currentAction = action;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (id)copy
|
||||
{
|
||||
M13ProgressViewMetroDotPolygon *dot = [[M13ProgressViewMetroDotPolygon alloc] init];
|
||||
dot.primaryColor = self.primaryColor;
|
||||
dot.secondaryColor = self.secondaryColor;
|
||||
dot.successColor = self.successColor;
|
||||
dot.failureColor = self.failureColor;
|
||||
dot.numberOfSides = _numberOfSides;
|
||||
dot.radius = _radius;
|
||||
return dot;
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,23 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewPie.h
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import "M13ProgressView.h"
|
||||
|
||||
/**A progress view that shows progress with a pie chart.*/
|
||||
@interface M13ProgressViewPie : M13ProgressView
|
||||
|
||||
/**@name Appearance*/
|
||||
/**The thickness of the border around the pie.*/
|
||||
@property (nonatomic, assign) CGFloat backgroundRingWidth;
|
||||
|
||||
@end
|
||||
@@ -1,510 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewPie.m
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import "M13ProgressViewPie.h"
|
||||
|
||||
@interface M13ProgressViewPie ()
|
||||
|
||||
/**The start progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationFromValue;
|
||||
/**The end progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationToValue;
|
||||
/**The start time interval for the animaiton.*/
|
||||
@property (nonatomic, assign) CFTimeInterval animationStartTime;
|
||||
/**Link to the display to keep animations in sync.*/
|
||||
@property (nonatomic, strong) CADisplayLink *displayLink;
|
||||
/**Allow us to write to the progress.*/
|
||||
@property (nonatomic, readwrite) CGFloat progress;
|
||||
/**The layer that progress is shown on.*/
|
||||
@property (nonatomic, retain) CAShapeLayer *progressLayer;
|
||||
/**The layer that the background and indeterminate progress is shown on.*/
|
||||
@property (nonatomic, retain) CAShapeLayer *backgroundLayer;
|
||||
/**The layer that is used to render icons for success or failure.*/
|
||||
@property (nonatomic, retain) CAShapeLayer *iconLayer;
|
||||
/**The layer that is used to display the indeterminate view.*/
|
||||
@property (nonatomic, retain) CAShapeLayer *indeterminateLayer;
|
||||
/**The action currently being performed.*/
|
||||
@property (nonatomic, assign) M13ProgressViewAction currentAction;
|
||||
|
||||
@end
|
||||
|
||||
#define kM13ProgressViewPieHideKey @"Hide"
|
||||
#define kM13ProgressViewPieShowKey @"Show"
|
||||
|
||||
@implementation M13ProgressViewPie
|
||||
{
|
||||
//Wether or not the corresponding values have been overriden by the user
|
||||
BOOL _backgroundRingWidthOverriden;
|
||||
}
|
||||
|
||||
@dynamic progress;
|
||||
|
||||
#pragma mark Initalization and setup
|
||||
|
||||
- (id)init
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(NSCoder *)aDecoder
|
||||
{
|
||||
self = [super initWithCoder:aDecoder];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)setup
|
||||
{
|
||||
//Set own background color
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
|
||||
//Set defaut sizes
|
||||
_backgroundRingWidthOverriden = NO;
|
||||
_backgroundRingWidth = fmaxf(self.bounds.size.width * .025, 1.0);
|
||||
|
||||
self.animationDuration = .3;
|
||||
|
||||
//Set default colors
|
||||
self.primaryColor = [UIColor colorWithRed:0 green:122/255.0 blue:1.0 alpha:1.0];
|
||||
self.secondaryColor = self.primaryColor;
|
||||
|
||||
//Set up the background layer
|
||||
_backgroundLayer = [CAShapeLayer layer];
|
||||
_backgroundLayer.strokeColor = self.secondaryColor.CGColor;
|
||||
_backgroundLayer.fillColor = [UIColor clearColor].CGColor;
|
||||
_backgroundLayer.lineCap = kCALineCapRound;
|
||||
_backgroundLayer.lineWidth = _backgroundRingWidth;
|
||||
[self.layer addSublayer:_backgroundLayer];
|
||||
|
||||
//Set up the progress layer
|
||||
_progressLayer = [CAShapeLayer layer];
|
||||
_progressLayer.fillColor = self.primaryColor.CGColor;
|
||||
_progressLayer.backgroundColor = [UIColor clearColor].CGColor;
|
||||
[self.layer addSublayer:_progressLayer];
|
||||
|
||||
//Set the indeterminate layer
|
||||
_indeterminateLayer = [CAShapeLayer layer];
|
||||
_indeterminateLayer.fillColor = self.primaryColor.CGColor;
|
||||
_indeterminateLayer.opacity = 0;
|
||||
[self.layer addSublayer:_indeterminateLayer];
|
||||
|
||||
//Set up the icon layer
|
||||
_iconLayer = [CAShapeLayer layer];
|
||||
_iconLayer.fillColor = self.primaryColor.CGColor;
|
||||
_iconLayer.fillRule = kCAFillRuleNonZero;
|
||||
[self.layer addSublayer:_iconLayer];
|
||||
}
|
||||
|
||||
#pragma mark Appearance
|
||||
|
||||
- (void)setPrimaryColor:(UIColor *)primaryColor
|
||||
{
|
||||
[super setPrimaryColor:primaryColor];
|
||||
_progressLayer.strokeColor = self.primaryColor.CGColor;
|
||||
_progressLayer.fillColor = self.primaryColor.CGColor;
|
||||
_iconLayer.fillColor = self.primaryColor.CGColor;
|
||||
_indeterminateLayer.fillColor = self.primaryColor.CGColor;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setSecondaryColor:(UIColor *)secondaryColor
|
||||
{
|
||||
[super setSecondaryColor:secondaryColor];
|
||||
_backgroundLayer.strokeColor = self.secondaryColor.CGColor;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setBackgroundRingWidth:(CGFloat)backgroundRingWidth
|
||||
{
|
||||
_backgroundRingWidth = backgroundRingWidth;
|
||||
_backgroundLayer.lineWidth = _backgroundRingWidth;
|
||||
_backgroundRingWidthOverriden = YES;
|
||||
[self setNeedsDisplay];
|
||||
[self invalidateIntrinsicContentSize];
|
||||
}
|
||||
|
||||
#pragma mark Actions
|
||||
|
||||
- (void)setProgress:(CGFloat)progress animated:(BOOL)animated
|
||||
{
|
||||
if (self.progress == progress) {
|
||||
return;
|
||||
}
|
||||
if (animated == NO) {
|
||||
if (_displayLink) {
|
||||
//Kill running animations
|
||||
[_displayLink invalidate];
|
||||
_displayLink = nil;
|
||||
}
|
||||
[super setProgress:progress animated:animated];
|
||||
[self setNeedsDisplay];
|
||||
} else {
|
||||
_animationStartTime = CACurrentMediaTime();
|
||||
_animationFromValue = self.progress;
|
||||
_animationToValue = progress;
|
||||
if (!_displayLink) {
|
||||
//Create and setup the display link
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(animateProgress:)];
|
||||
[self.displayLink addToRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
|
||||
} /*else {
|
||||
//Reuse the current display link
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
- (void)animateProgress:(CADisplayLink *)displayLink
|
||||
{
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
CGFloat dt = (displayLink.timestamp - _animationStartTime) / self.animationDuration;
|
||||
if (dt >= 1.0) {
|
||||
//Order is important! Otherwise concurrency will cause errors, because setProgress: will detect an animation in progress and try to stop it by itself. Once over one, set to actual progress amount. Animation is over.
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = nil;
|
||||
[super setProgress:_animationToValue animated:NO];
|
||||
[self setNeedsDisplay];
|
||||
return;
|
||||
}
|
||||
|
||||
//Set progress
|
||||
[super setProgress:_animationFromValue + dt * (_animationToValue - _animationFromValue) animated:YES];
|
||||
[self setNeedsDisplay];
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated
|
||||
{
|
||||
if (action == M13ProgressViewActionNone && _currentAction != M13ProgressViewActionNone) {
|
||||
//Animate
|
||||
[CATransaction begin];
|
||||
[_iconLayer addAnimation:[self hideAnimation] forKey:kM13ProgressViewPieHideKey];
|
||||
if (self.indeterminate) {
|
||||
[_indeterminateLayer addAnimation:[self showAnimation] forKey:kM13ProgressViewPieShowKey];
|
||||
} else {
|
||||
[_progressLayer addAnimation:[self showAnimation] forKey:kM13ProgressViewPieShowKey];
|
||||
}
|
||||
[CATransaction commit];
|
||||
_currentAction = action;
|
||||
} else if (action == M13ProgressViewActionSuccess && _currentAction != M13ProgressViewActionSuccess) {
|
||||
if (_currentAction == M13ProgressViewActionNone) {
|
||||
_currentAction = action;
|
||||
//Just show the icon layer
|
||||
[self drawIcon];
|
||||
//Animate
|
||||
[CATransaction begin];
|
||||
[_iconLayer addAnimation:[self showAnimation] forKey:kM13ProgressViewPieShowKey];
|
||||
if (self.indeterminate) {
|
||||
[_indeterminateLayer addAnimation:[self hideAnimation] forKey:kM13ProgressViewPieHideKey];
|
||||
} else {
|
||||
[_progressLayer addAnimation:[self hideAnimation] forKey:kM13ProgressViewPieHideKey];
|
||||
}
|
||||
[CATransaction commit];
|
||||
} else if (_currentAction == M13ProgressViewActionFailure) {
|
||||
//Hide the icon layer before showing
|
||||
[CATransaction begin];
|
||||
[_iconLayer addAnimation:[self hideAnimation] forKey:kM13ProgressViewPieHideKey];
|
||||
[CATransaction setCompletionBlock:^{
|
||||
_currentAction = action;
|
||||
[self drawIcon];
|
||||
[_iconLayer addAnimation:[self showAnimation] forKey:kM13ProgressViewPieShowKey];
|
||||
}];
|
||||
[CATransaction commit];
|
||||
}
|
||||
} else if (action == M13ProgressViewActionFailure && _currentAction != M13ProgressViewActionFailure) {
|
||||
if (_currentAction == M13ProgressViewActionNone) {
|
||||
//Just show the icon layer
|
||||
_currentAction = action;
|
||||
[self drawIcon];
|
||||
[CATransaction begin];
|
||||
[_iconLayer addAnimation:[self showAnimation] forKey:kM13ProgressViewPieShowKey];
|
||||
if (self.indeterminate) {
|
||||
[_indeterminateLayer addAnimation:[self hideAnimation] forKey:kM13ProgressViewPieHideKey];
|
||||
} else {
|
||||
[_progressLayer addAnimation:[self hideAnimation] forKey:kM13ProgressViewPieHideKey];
|
||||
}
|
||||
[CATransaction commit];
|
||||
} else if (_currentAction == M13ProgressViewActionSuccess) {
|
||||
//Hide the icon layer before showing
|
||||
[CATransaction begin];
|
||||
[_iconLayer addAnimation:[self hideAnimation] forKey:kM13ProgressViewPieHideKey];
|
||||
[CATransaction setCompletionBlock:^{
|
||||
_currentAction = action;
|
||||
[self drawIcon];
|
||||
[_iconLayer addAnimation:[self showAnimation] forKey:kM13ProgressViewPieShowKey];
|
||||
}];
|
||||
[CATransaction commit];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setIndeterminate:(BOOL)indeterminate
|
||||
{
|
||||
[super setIndeterminate:indeterminate];
|
||||
if (self.indeterminate == YES) {
|
||||
//Draw the indeterminate circle
|
||||
[self drawIndeterminate];
|
||||
|
||||
//Create the rotation animation
|
||||
CABasicAnimation *rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
|
||||
rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 2.0];
|
||||
rotationAnimation.duration = 1;
|
||||
rotationAnimation.cumulative = YES;
|
||||
rotationAnimation.repeatCount = HUGE_VALF;
|
||||
|
||||
//Set the animations
|
||||
[_indeterminateLayer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
|
||||
[CATransaction begin];
|
||||
[_progressLayer addAnimation:[self hideAnimation] forKey:kM13ProgressViewPieHideKey];
|
||||
[_indeterminateLayer addAnimation:[self showAnimation] forKey:kM13ProgressViewPieShowKey];
|
||||
[CATransaction commit];
|
||||
} else {
|
||||
//Animate
|
||||
[CATransaction begin];
|
||||
[_progressLayer addAnimation:[self showAnimation] forKey:kM13ProgressViewPieShowKey];
|
||||
[_indeterminateLayer addAnimation:[self hideAnimation] forKey:kM13ProgressViewPieHideKey];
|
||||
[CATransaction setCompletionBlock:^{
|
||||
//Remove the rotation animation and reset the background
|
||||
[_backgroundLayer removeAnimationForKey:@"rotationAnimation"];
|
||||
[self drawBackground];
|
||||
}];
|
||||
[CATransaction commit];
|
||||
}
|
||||
}
|
||||
|
||||
- (CABasicAnimation *)showAnimation
|
||||
{
|
||||
//Show the progress layer and percentage
|
||||
CABasicAnimation *showAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
|
||||
showAnimation.fromValue = [NSNumber numberWithFloat:0.0];
|
||||
showAnimation.toValue = [NSNumber numberWithFloat:1.0];
|
||||
showAnimation.duration = self.animationDuration;
|
||||
showAnimation.repeatCount = 1.0;
|
||||
//Prevent the animation from resetting
|
||||
showAnimation.fillMode = kCAFillModeForwards;
|
||||
showAnimation.removedOnCompletion = NO;
|
||||
return showAnimation;
|
||||
}
|
||||
|
||||
- (CABasicAnimation *)hideAnimation
|
||||
{
|
||||
//Hide the progress layer and percentage
|
||||
CABasicAnimation *hideAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
|
||||
hideAnimation.fromValue = [NSNumber numberWithFloat:1.0];
|
||||
hideAnimation.toValue = [NSNumber numberWithFloat:0.0];
|
||||
hideAnimation.duration = self.animationDuration;
|
||||
hideAnimation.repeatCount = 1.0;
|
||||
//Prevent the animation from resetting
|
||||
hideAnimation.fillMode = kCAFillModeForwards;
|
||||
hideAnimation.removedOnCompletion = NO;
|
||||
return hideAnimation;
|
||||
}
|
||||
|
||||
#pragma mark Layout
|
||||
|
||||
- (void)layoutSubviews
|
||||
{
|
||||
//Update frames of layers
|
||||
_backgroundLayer.frame = self.bounds;
|
||||
_progressLayer.frame = self.bounds;
|
||||
_iconLayer.frame = self.bounds;
|
||||
_indeterminateLayer.frame = self.bounds;
|
||||
|
||||
//Update line widths if not overriden
|
||||
if (!_backgroundRingWidthOverriden) {
|
||||
_backgroundRingWidth = fmaxf(self.frame.size.width * .025, 1.0);
|
||||
}
|
||||
|
||||
//Redraw
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (CGSize)intrinsicContentSize
|
||||
{
|
||||
if (!_backgroundRingWidthOverriden) {
|
||||
//Based on scale
|
||||
return CGSizeMake(UIViewNoIntrinsicMetric, UIViewNoIntrinsicMetric);
|
||||
} else {
|
||||
return CGSizeMake(2 * _backgroundRingWidth, 2 * _backgroundRingWidth);
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setFrame:(CGRect)frame
|
||||
{
|
||||
//Keep the progress view square.
|
||||
if (frame.size.width != frame.size.height) {
|
||||
frame.size.height = frame.size.width;
|
||||
}
|
||||
[super setFrame:frame];
|
||||
}
|
||||
|
||||
|
||||
#pragma mark Drawing
|
||||
|
||||
- (void)drawRect:(CGRect)rect
|
||||
{
|
||||
[super drawRect:rect];
|
||||
|
||||
//Draw the background
|
||||
[self drawBackground];
|
||||
|
||||
//Draw Icons
|
||||
[self drawIcon];
|
||||
|
||||
//Draw Progress
|
||||
[self drawProgress];
|
||||
}
|
||||
|
||||
- (void)drawSuccess
|
||||
{
|
||||
//Draw relative to a base size and percentage, that way the check can be drawn for any size.*/
|
||||
CGFloat radius = (self.frame.size.width / 2.0);
|
||||
CGFloat size = radius * .3;
|
||||
|
||||
//Create the path
|
||||
UIBezierPath *path = [UIBezierPath bezierPath];
|
||||
[path moveToPoint:CGPointMake(0, 0)];
|
||||
[path addLineToPoint:CGPointMake(0, size * 2)];
|
||||
[path addLineToPoint:CGPointMake(size * 3, size * 2)];
|
||||
[path addLineToPoint:CGPointMake(size * 3, size)];
|
||||
[path addLineToPoint:CGPointMake(size, size)];
|
||||
[path addLineToPoint:CGPointMake(size, 0)];
|
||||
[path closePath];
|
||||
|
||||
//Rotate it through -45 degrees...
|
||||
[path applyTransform:CGAffineTransformMakeRotation(-M_PI_4)];
|
||||
|
||||
//Center it
|
||||
[path applyTransform:CGAffineTransformMakeTranslation(radius * .46, 1.02 * radius)];
|
||||
|
||||
//Set path
|
||||
[_iconLayer setPath:path.CGPath];
|
||||
[_iconLayer setFillColor:self.primaryColor.CGColor];
|
||||
}
|
||||
|
||||
- (void)drawFailure
|
||||
{
|
||||
//Calculate the size of the X
|
||||
CGFloat radius = self.frame.size.width / 2.0;
|
||||
CGFloat size = radius * .3;
|
||||
|
||||
//Create the path for the X
|
||||
UIBezierPath *xPath = [UIBezierPath bezierPath];
|
||||
[xPath moveToPoint:CGPointMake(size, 0)];
|
||||
[xPath addLineToPoint:CGPointMake(2 * size, 0)];
|
||||
[xPath addLineToPoint:CGPointMake(2 * size, size)];
|
||||
[xPath addLineToPoint:CGPointMake(3 * size, size)];
|
||||
[xPath addLineToPoint:CGPointMake(3 * size, 2 * size)];
|
||||
[xPath addLineToPoint:CGPointMake(2 * size, 2 * size)];
|
||||
[xPath addLineToPoint:CGPointMake(2 * size, 3 * size)];
|
||||
[xPath addLineToPoint:CGPointMake(size, 3 * size)];
|
||||
[xPath addLineToPoint:CGPointMake(size, 2 * size)];
|
||||
[xPath addLineToPoint:CGPointMake(0, 2 * size)];
|
||||
[xPath addLineToPoint:CGPointMake(0, size)];
|
||||
[xPath addLineToPoint:CGPointMake(size, size)];
|
||||
[xPath closePath];
|
||||
|
||||
//Center it
|
||||
[xPath applyTransform:CGAffineTransformMakeTranslation(radius - (1.5 * size), radius - (1.5 * size))];
|
||||
|
||||
//Rotate path
|
||||
[xPath applyTransform:CGAffineTransformMake(cos(M_PI_4),sin(M_PI_4),-sin(M_PI_4),cos(M_PI_4),radius * (1 - cos(M_PI_4)+ sin(M_PI_4)),radius * (1 - sin(M_PI_4)- cos(M_PI_4)))];
|
||||
|
||||
//Set path and fill color
|
||||
[_iconLayer setPath:xPath.CGPath];
|
||||
[_iconLayer setFillColor:self.primaryColor.CGColor];
|
||||
}
|
||||
|
||||
- (void)drawBackground
|
||||
{
|
||||
//Create parameters to draw background
|
||||
float startAngle = - M_PI_2;
|
||||
float endAngle = startAngle + (2.0 * M_PI);
|
||||
CGPoint center = CGPointMake(self.bounds.size.width / 2.0, self.bounds.size.width / 2.0);
|
||||
CGFloat radius = (self.bounds.size.width - _backgroundRingWidth) / 2.0;
|
||||
|
||||
//Draw path
|
||||
UIBezierPath *path = [UIBezierPath bezierPath];
|
||||
path.lineWidth = _backgroundRingWidth;
|
||||
path.lineCapStyle = kCGLineCapRound;
|
||||
[path addArcWithCenter:center radius:radius startAngle:startAngle endAngle:endAngle clockwise:YES];
|
||||
|
||||
//Set the path
|
||||
_backgroundLayer.path = path.CGPath;
|
||||
}
|
||||
|
||||
- (void)drawProgress
|
||||
{
|
||||
//Create parameters to draw progress
|
||||
float startAngle = - M_PI_2;
|
||||
float endAngle = startAngle + (2.0 * M_PI * self.progress);
|
||||
CGPoint center = CGPointMake(self.bounds.size.width / 2.0, self.bounds.size.width / 2.0);
|
||||
CGFloat radius = (self.bounds.size.width - _backgroundRingWidth) / 2.0;
|
||||
|
||||
//Draw path
|
||||
UIBezierPath *path = [UIBezierPath bezierPath];
|
||||
[path moveToPoint:CGPointMake(self.bounds.size.width / 2.0, self.bounds.size.height / 2.0)];
|
||||
[path addArcWithCenter:center radius:radius startAngle:startAngle endAngle:endAngle clockwise:YES];
|
||||
[path closePath];
|
||||
|
||||
//Set the path
|
||||
[_progressLayer setPath:path.CGPath];
|
||||
|
||||
}
|
||||
|
||||
- (void)drawIcon
|
||||
{
|
||||
if (_currentAction == M13ProgressViewActionSuccess) {
|
||||
[self drawSuccess];
|
||||
} else if (_currentAction == M13ProgressViewActionFailure) {
|
||||
[self drawFailure];
|
||||
} else if (_currentAction == M13ProgressViewActionNone) {
|
||||
//Clear layer
|
||||
_iconLayer.path = nil;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)drawIndeterminate
|
||||
{
|
||||
//Create parameters to draw progress
|
||||
float startAngle = - M_PI_2;
|
||||
float endAngle = startAngle + (2.0 * M_PI * .2);
|
||||
CGPoint center = CGPointMake(self.bounds.size.width / 2.0, self.bounds.size.width / 2.0);
|
||||
CGFloat radius = (self.bounds.size.width - _backgroundRingWidth) / 2.0;
|
||||
|
||||
//Draw path
|
||||
UIBezierPath *path = [UIBezierPath bezierPath];
|
||||
[path moveToPoint:CGPointMake(self.bounds.size.width / 2.0, self.bounds.size.height / 2.0)];
|
||||
[path addArcWithCenter:center radius:radius startAngle:startAngle endAngle:endAngle clockwise:YES];
|
||||
[path closePath];
|
||||
|
||||
//Set the path
|
||||
[_indeterminateLayer setPath:path.CGPath];
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,35 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewRadiative.h
|
||||
// M13ProgressSuite
|
||||
//
|
||||
// Created by Brandon McQuilkin on 3/13/14.
|
||||
// Copyright (c) 2014 Brandon McQuilkin. All rights reserved.
|
||||
//
|
||||
|
||||
#import "M13ProgressView.h"
|
||||
|
||||
typedef enum {
|
||||
M13ProgressViewRadiativeShapeCircle,
|
||||
M13ProgressViewRadiativeShapeSquare
|
||||
} M13ProgressViewRadiativeShape;
|
||||
|
||||
/**A progress view that displays progress via "Radiative" rings around a central point.*/
|
||||
@interface M13ProgressViewRadiative : M13ProgressView
|
||||
|
||||
/**@name Appearance*/
|
||||
/**The point where the wave fronts originate from. The point is defined in percentages, top left being {0, 0}, and the bottom right being {1, 1}.*/
|
||||
@property (nonatomic, assign) CGPoint originationPoint;
|
||||
/**The distance of the last ripple from the origination point.*/
|
||||
@property (nonatomic, assign) CGFloat ripplesRadius;
|
||||
/**The width of the ripples.*/
|
||||
@property (nonatomic, assign) CGFloat rippleWidth;
|
||||
/**The shape of the radiative ripples*/
|
||||
@property (nonatomic, assign) M13ProgressViewRadiativeShape shape;
|
||||
/**The number of ripples the progress view displays.*/
|
||||
@property (nonatomic, assign) NSUInteger numberOfRipples;
|
||||
/**The number of ripples the indeterminate pulse animation is.*/
|
||||
@property (nonatomic, assign) NSUInteger pulseWidth;
|
||||
/**The direction of the progress. If set to yes, the progress will be outward, of set to no, it will be inwards.*/
|
||||
@property (nonatomic, assign) BOOL progressOutwards;
|
||||
|
||||
@end
|
||||
@@ -1,271 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewRadiative.m
|
||||
// M13ProgressSuite
|
||||
//
|
||||
// Created by Brandon McQuilkin on 3/13/14.
|
||||
// Copyright (c) 2014 Brandon McQuilkin. All rights reserved.
|
||||
//
|
||||
|
||||
#import "M13ProgressViewRadiative.h"
|
||||
#import <QuartzCore/QuartzCore.h>
|
||||
|
||||
@interface M13ProgressViewRadiative ()
|
||||
|
||||
/**The start progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationFromValue;
|
||||
/**The end progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationToValue;
|
||||
/**The start time interval for the animaiton.*/
|
||||
@property (nonatomic, assign) CFTimeInterval animationStartTime;
|
||||
/**Link to the display to keep animations in sync.*/
|
||||
@property (nonatomic, strong) CADisplayLink *displayLink;
|
||||
|
||||
@end
|
||||
|
||||
@implementation M13ProgressViewRadiative
|
||||
{
|
||||
NSMutableArray *ripplePaths;
|
||||
}
|
||||
|
||||
- (id)init
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(NSCoder *)aDecoder
|
||||
{
|
||||
self = [super initWithCoder:aDecoder];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)setup
|
||||
{
|
||||
//Set own background color
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
self.clipsToBounds = YES;
|
||||
|
||||
//Set defauts
|
||||
self.animationDuration = 1.0;
|
||||
_originationPoint = CGPointMake(0.5, 0.5);
|
||||
self.numberOfRipples = 10;
|
||||
self.shape = M13ProgressViewRadiativeShapeCircle;
|
||||
_rippleWidth = 1.0;
|
||||
_ripplesRadius = 20;
|
||||
_pulseWidth = 5;
|
||||
_progressOutwards = YES;
|
||||
|
||||
//Set default colors
|
||||
self.primaryColor = [UIColor colorWithRed:0 green:122/255.0 blue:1.0 alpha:1.0];
|
||||
self.secondaryColor = [UIColor colorWithRed:181/255.0 green:182/255.0 blue:183/255.0 alpha:1.0];
|
||||
}
|
||||
|
||||
#pragma mark Setters
|
||||
|
||||
- (void)setOriginationPoint:(CGPoint)originationPoint
|
||||
{
|
||||
_originationPoint = originationPoint;
|
||||
[self setNeedsLayout];
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setRipplesRadius:(CGFloat)ripplesRadius
|
||||
{
|
||||
_ripplesRadius = ripplesRadius;
|
||||
[self setNeedsLayout];
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setNumberOfRipples:(NSUInteger)numberOfRipples
|
||||
{
|
||||
_numberOfRipples = numberOfRipples;
|
||||
[self setNeedsLayout];
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setRippleWidth:(CGFloat)rippleWidth
|
||||
{
|
||||
_rippleWidth = rippleWidth;
|
||||
for (UIBezierPath *path in ripplePaths) {
|
||||
path.lineWidth = _rippleWidth;
|
||||
}
|
||||
[self setIndeterminate:self.indeterminate];
|
||||
}
|
||||
|
||||
- (void)setShape:(M13ProgressViewRadiativeShape)shape
|
||||
{
|
||||
_shape = shape;
|
||||
[self setNeedsLayout];
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setPulseWidth:(NSUInteger)pulseWidth
|
||||
{
|
||||
_pulseWidth = pulseWidth;
|
||||
self.indeterminate = self.indeterminate;
|
||||
}
|
||||
|
||||
- (void)setProgressOutwards:(BOOL)progressOutwards
|
||||
{
|
||||
_progressOutwards = progressOutwards;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setPrimaryColor:(UIColor *)primaryColor
|
||||
{
|
||||
[super setPrimaryColor:primaryColor];
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setSecondaryColor:(UIColor *)secondaryColor
|
||||
{
|
||||
[super setSecondaryColor:secondaryColor];
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
#pragma mark animations
|
||||
|
||||
- (void)setProgress:(CGFloat)progress animated:(BOOL)animated
|
||||
{
|
||||
if (animated == NO) {
|
||||
if (_displayLink) {
|
||||
//Kill running animations
|
||||
[_displayLink invalidate];
|
||||
_displayLink = nil;
|
||||
}
|
||||
[super setProgress:progress animated:NO];
|
||||
[self setNeedsDisplay];
|
||||
} else {
|
||||
_animationStartTime = CACurrentMediaTime();
|
||||
_animationFromValue = self.progress;
|
||||
_animationToValue = progress;
|
||||
if (!_displayLink) {
|
||||
//Create and setup the display link
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(animateProgress:)];
|
||||
[self.displayLink addToRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
|
||||
} /*else {
|
||||
//Reuse the current display link
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
- (void)animateProgress:(CADisplayLink *)displayLink
|
||||
{
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
CGFloat dt = (displayLink.timestamp - _animationStartTime) / self.animationDuration;
|
||||
if (dt >= 1.0) {
|
||||
//Order is important! Otherwise concurrency will cause errors, because setProgress: will detect an animation in progress and try to stop it by itself. Once over one, set to actual progress amount. Animation is over.
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = nil;
|
||||
[super setProgress:_animationToValue animated:NO];
|
||||
[self setNeedsDisplay];
|
||||
return;
|
||||
}
|
||||
|
||||
//Set progress
|
||||
[super setProgress:_animationFromValue + dt * (_animationToValue - _animationFromValue) animated:YES];
|
||||
[self setNeedsDisplay];
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
- (void)setIndeterminate:(BOOL)indeterminate
|
||||
{
|
||||
[super setIndeterminate:indeterminate];
|
||||
//Need animation
|
||||
}
|
||||
|
||||
#pragma mark Layout
|
||||
|
||||
- (void)layoutSubviews
|
||||
{
|
||||
[super layoutSubviews];
|
||||
//Create the paths to draw the ripples
|
||||
ripplePaths = [NSMutableArray array];
|
||||
for (int i = 0; i < _numberOfRipples - 1; i++) {
|
||||
if (_shape == M13ProgressViewRadiativeShapeCircle) {
|
||||
//If circular
|
||||
UIBezierPath *path = [UIBezierPath bezierPath];
|
||||
//Calculate the radius
|
||||
CGFloat radius = _ripplesRadius * ((float)i / (float)(_numberOfRipples - 1));
|
||||
//Draw the arc
|
||||
[path moveToPoint:CGPointMake((_originationPoint.x * self.bounds.size.width)+ radius, _originationPoint.y * self.bounds.size.height)];
|
||||
[path addArcWithCenter:CGPointMake(self.bounds.size.width * _originationPoint.x, self.bounds.size.height * _originationPoint.y) radius:radius startAngle:0.0 endAngle:(2 * M_PI) clockwise:YES];
|
||||
//Set the width
|
||||
path.lineWidth = _rippleWidth;
|
||||
[ripplePaths addObject:path];
|
||||
} else if (_shape == M13ProgressViewRadiativeShapeSquare) {
|
||||
//If square
|
||||
CGFloat radius = _ripplesRadius * ((float)i / (float)(_numberOfRipples - 1));
|
||||
CGFloat delta = radius * (1 / sqrtf(2));
|
||||
UIBezierPath *path = [UIBezierPath bezierPathWithRect:CGRectMake((_originationPoint.x * self.bounds.size.width) - delta, (_originationPoint.y * self.bounds.size.height) - delta, delta * 2, delta * 2)];
|
||||
path.lineWidth = _rippleWidth;
|
||||
[ripplePaths addObject:path];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (CGSize)intrinsicContentSize
|
||||
{
|
||||
//The width and height should be set with constraints. Can't think of a good way to figure out the minimum size with the point and scale based size calculations.
|
||||
return CGSizeMake(UIViewNoIntrinsicMetric, UIViewNoIntrinsicMetric);
|
||||
}
|
||||
|
||||
#pragma mark Drawing
|
||||
|
||||
- (void)drawRect:(CGRect)rect
|
||||
{
|
||||
[super drawRect:rect];
|
||||
//Get the current context
|
||||
CGContextRef context = UIGraphicsGetCurrentContext();
|
||||
//For each of the paths draw it in the view.
|
||||
NSEnumerator *enumerator;
|
||||
if (_progressOutwards) {
|
||||
enumerator = [ripplePaths objectEnumerator];
|
||||
} else {
|
||||
enumerator = [ripplePaths reverseObjectEnumerator];
|
||||
}
|
||||
|
||||
UIBezierPath *path;
|
||||
int i = 0;
|
||||
int indexOfLastFilledPath = ceilf(self.progress * (float)_numberOfRipples);
|
||||
while ((path = [enumerator nextObject])) {
|
||||
//Set the path's color
|
||||
if (!self.indeterminate) {
|
||||
//Show progress
|
||||
if (i <= indexOfLastFilledPath && self.progress != 0) {
|
||||
//Highlighted
|
||||
CGContextSetStrokeColorWithColor(context, self.primaryColor.CGColor);
|
||||
CGContextAddPath(context, path.CGPath);
|
||||
CGContextStrokePath(context);
|
||||
} else {
|
||||
//Not highlighted
|
||||
CGContextSetStrokeColorWithColor(context, self.secondaryColor.CGColor);
|
||||
CGContextAddPath(context, path.CGPath);
|
||||
CGContextStrokePath(context);
|
||||
}
|
||||
i++;
|
||||
} else {
|
||||
//Indeterminate
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,28 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewRing.h
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import "M13ProgressView.h"
|
||||
|
||||
/**A progress view stylized similarly to the iOS 7 App store progress view.*/
|
||||
@interface M13ProgressViewRing : M13ProgressView
|
||||
|
||||
/**@name Appearance*/
|
||||
/**The width of the background ring in points.*/
|
||||
@property (nonatomic, assign) CGFloat backgroundRingWidth;
|
||||
/**The width of the progress ring in points.*/
|
||||
@property (nonatomic, assign) CGFloat progressRingWidth;
|
||||
/**@name Percentage*/
|
||||
/**Wether or not to display a percentage inside the ring.*/
|
||||
@property (nonatomic, assign) BOOL showPercentage;
|
||||
|
||||
@end
|
||||
@@ -1,518 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewRing.m
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import "M13ProgressViewRing.h"
|
||||
#import <CoreGraphics/CoreGraphics.h>
|
||||
|
||||
@interface M13ProgressViewRing ()
|
||||
/**The number formatter to display the progress percentage.*/
|
||||
@property (nonatomic, retain) NSNumberFormatter *percentageFormatter;
|
||||
/**The label that shows the percentage.*/
|
||||
@property (nonatomic, retain) UILabel *percentageLabel;
|
||||
/**The start progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationFromValue;
|
||||
/**The end progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationToValue;
|
||||
/**The start time interval for the animaiton.*/
|
||||
@property (nonatomic, assign) CFTimeInterval animationStartTime;
|
||||
/**Link to the display to keep animations in sync.*/
|
||||
@property (nonatomic, strong) CADisplayLink *displayLink;
|
||||
/**The layer that progress is shown on.*/
|
||||
@property (nonatomic, retain) CAShapeLayer *progressLayer;
|
||||
/**The layer that the background and indeterminate progress is shown on.*/
|
||||
@property (nonatomic, retain) CAShapeLayer *backgroundLayer;
|
||||
/**The layer that is used to render icons for success or failure.*/
|
||||
@property (nonatomic, retain) CAShapeLayer *iconLayer;
|
||||
/**The action currently being performed.*/
|
||||
@property (nonatomic, assign) M13ProgressViewAction currentAction;
|
||||
@end
|
||||
|
||||
#define kM13ProgressViewRingHideKey @"Hide"
|
||||
#define kM13ProgressViewRingShowKey @"Show"
|
||||
|
||||
@implementation M13ProgressViewRing
|
||||
{
|
||||
//Wether or not the corresponding values have been overriden by the user
|
||||
BOOL _backgroundRingWidthOverriden;
|
||||
BOOL _progressRingWidthOverriden;
|
||||
}
|
||||
|
||||
#pragma mark Initalization and setup
|
||||
|
||||
- (id)init
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(NSCoder *)aDecoder
|
||||
{
|
||||
self = [super initWithCoder:aDecoder];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)setup
|
||||
{
|
||||
//Set own background color
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
|
||||
//Set defaut sizes
|
||||
_backgroundRingWidth = fmaxf(self.bounds.size.width * .025, 1.0);
|
||||
_progressRingWidth = 3 * _backgroundRingWidth;
|
||||
_progressRingWidthOverriden = NO;
|
||||
_backgroundRingWidthOverriden = NO;
|
||||
self.animationDuration = .3;
|
||||
|
||||
//Set default colors
|
||||
self.primaryColor = [UIColor colorWithRed:0 green:122/255.0 blue:1.0 alpha:1.0];
|
||||
self.secondaryColor = self.primaryColor;
|
||||
|
||||
//Set up the number formatter
|
||||
_percentageFormatter = [[NSNumberFormatter alloc] init];
|
||||
_percentageFormatter.numberStyle = NSNumberFormatterPercentStyle;
|
||||
|
||||
//Set up the background layer
|
||||
_backgroundLayer = [CAShapeLayer layer];
|
||||
_backgroundLayer.strokeColor = self.secondaryColor.CGColor;
|
||||
_backgroundLayer.fillColor = [UIColor clearColor].CGColor;
|
||||
_backgroundLayer.lineCap = kCALineCapRound;
|
||||
_backgroundLayer.lineWidth = _backgroundRingWidth;
|
||||
[self.layer addSublayer:_backgroundLayer];
|
||||
|
||||
//Set up the progress layer
|
||||
_progressLayer = [CAShapeLayer layer];
|
||||
_progressLayer.strokeColor = self.primaryColor.CGColor;
|
||||
_progressLayer.fillColor = nil;
|
||||
_progressLayer.lineCap = kCALineCapButt;
|
||||
_progressLayer.lineWidth = _progressRingWidth;
|
||||
[self.layer addSublayer:_progressLayer];
|
||||
|
||||
//Set up the icon layer
|
||||
_iconLayer = [CAShapeLayer layer];
|
||||
_iconLayer.fillColor = self.primaryColor.CGColor;
|
||||
_iconLayer.fillRule = kCAFillRuleNonZero;
|
||||
[self.layer addSublayer:_iconLayer];
|
||||
|
||||
//Set the label
|
||||
_percentageLabel = [[UILabel alloc] init];
|
||||
_percentageLabel.textAlignment = NSTextAlignmentCenter;
|
||||
_percentageLabel.contentMode = UIViewContentModeCenter;
|
||||
_percentageLabel.frame = self.bounds;
|
||||
[self addSubview:_percentageLabel];
|
||||
}
|
||||
|
||||
#pragma mark Appearance
|
||||
|
||||
- (void)setPrimaryColor:(UIColor *)primaryColor
|
||||
{
|
||||
[super setPrimaryColor:primaryColor];
|
||||
_progressLayer.strokeColor = self.primaryColor.CGColor;
|
||||
_iconLayer.fillColor = self.primaryColor.CGColor;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setSecondaryColor:(UIColor *)secondaryColor
|
||||
{
|
||||
[super setSecondaryColor:secondaryColor];
|
||||
_backgroundLayer.strokeColor = self.secondaryColor.CGColor;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setBackgroundRingWidth:(CGFloat)backgroundRingWidth
|
||||
{
|
||||
_backgroundRingWidth = backgroundRingWidth;
|
||||
_backgroundLayer.lineWidth = _backgroundRingWidth;
|
||||
_backgroundRingWidthOverriden = YES;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setProgressRingWidth:(CGFloat)progressRingWidth
|
||||
{
|
||||
_progressRingWidth = progressRingWidth;
|
||||
_progressLayer.lineWidth = _progressRingWidth;
|
||||
_progressRingWidthOverriden = YES;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setShowPercentage:(BOOL)showPercentage
|
||||
{
|
||||
_showPercentage = showPercentage;
|
||||
if (_showPercentage == YES) {
|
||||
if (_percentageLabel.superview == nil) {
|
||||
//Show the label if not already
|
||||
[self addSubview:_percentageLabel];
|
||||
[self setNeedsLayout];
|
||||
}
|
||||
} else {
|
||||
if (_percentageLabel.superview != nil) {
|
||||
//Hide the label if not already
|
||||
[_percentageLabel removeFromSuperview];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark Actions
|
||||
|
||||
- (void)setProgress:(CGFloat)progress animated:(BOOL)animated
|
||||
{
|
||||
if (self.progress == progress) {
|
||||
return;
|
||||
}
|
||||
if (animated == NO) {
|
||||
if (_displayLink) {
|
||||
//Kill running animations
|
||||
[_displayLink invalidate];
|
||||
_displayLink = nil;
|
||||
}
|
||||
[super setProgress:progress animated:animated];
|
||||
[self setNeedsDisplay];
|
||||
} else {
|
||||
_animationStartTime = CACurrentMediaTime();
|
||||
_animationFromValue = self.progress;
|
||||
_animationToValue = progress;
|
||||
if (!_displayLink) {
|
||||
//Create and setup the display link
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(animateProgress:)];
|
||||
[self.displayLink addToRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
|
||||
} /*else {
|
||||
//Reuse the current display link
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
- (void)animateProgress:(CADisplayLink *)displayLink
|
||||
{
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
CGFloat dt = (displayLink.timestamp - _animationStartTime) / self.animationDuration;
|
||||
if (dt >= 1.0) {
|
||||
//Order is important! Otherwise concurrency will cause errors, because setProgress: will detect an animation in progress and try to stop it by itself. Once over one, set to actual progress amount. Animation is over.
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = nil;
|
||||
[super setProgress:_animationToValue animated:NO];
|
||||
[self setNeedsDisplay];
|
||||
return;
|
||||
}
|
||||
|
||||
//Set progress
|
||||
[super setProgress:_animationFromValue + dt * (_animationToValue - _animationFromValue) animated:YES];
|
||||
[self setNeedsDisplay];
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated
|
||||
{
|
||||
if (action == M13ProgressViewActionNone && _currentAction != M13ProgressViewActionNone) {
|
||||
//Animate
|
||||
[CATransaction begin];
|
||||
[_iconLayer addAnimation:[self hideAnimation] forKey:kM13ProgressViewRingHideKey];
|
||||
[_percentageLabel.layer addAnimation:[self showAnimation] forKey:kM13ProgressViewRingShowKey];
|
||||
[CATransaction commit];
|
||||
_currentAction = action;
|
||||
} else if (action == M13ProgressViewActionSuccess && _currentAction != M13ProgressViewActionSuccess) {
|
||||
if (_currentAction == M13ProgressViewActionNone) {
|
||||
_currentAction = action;
|
||||
//Just show the icon layer
|
||||
[self drawIcon];
|
||||
//Animate
|
||||
[CATransaction begin];
|
||||
[_iconLayer addAnimation:[self showAnimation] forKey:kM13ProgressViewRingShowKey];
|
||||
[_percentageLabel.layer addAnimation:[self hideAnimation] forKey:kM13ProgressViewRingHideKey];
|
||||
[CATransaction commit];
|
||||
} else if (_currentAction == M13ProgressViewActionFailure) {
|
||||
//Hide the icon layer before showing
|
||||
[CATransaction begin];
|
||||
[_iconLayer addAnimation:[self hideAnimation] forKey:kM13ProgressViewRingHideKey];
|
||||
[CATransaction setCompletionBlock:^{
|
||||
_currentAction = action;
|
||||
[self drawIcon];
|
||||
[_iconLayer addAnimation:[self showAnimation] forKey:kM13ProgressViewRingShowKey];
|
||||
}];
|
||||
[CATransaction commit];
|
||||
}
|
||||
} else if (action == M13ProgressViewActionFailure && _currentAction != M13ProgressViewActionFailure) {
|
||||
if (_currentAction == M13ProgressViewActionNone) {
|
||||
//Just show the icon layer
|
||||
_currentAction = action;
|
||||
[self drawIcon];
|
||||
[CATransaction begin];
|
||||
[_iconLayer addAnimation:[self showAnimation] forKey:kM13ProgressViewRingShowKey];
|
||||
[_percentageLabel.layer addAnimation:[self hideAnimation] forKey:kM13ProgressViewRingHideKey];
|
||||
[CATransaction commit];
|
||||
} else if (_currentAction == M13ProgressViewActionSuccess) {
|
||||
//Hide the icon layer before showing
|
||||
[CATransaction begin];
|
||||
[_iconLayer addAnimation:[self hideAnimation] forKey:kM13ProgressViewRingHideKey];
|
||||
[CATransaction setCompletionBlock:^{
|
||||
_currentAction = action;
|
||||
[self drawIcon];
|
||||
[_iconLayer addAnimation:[self showAnimation] forKey:kM13ProgressViewRingShowKey];
|
||||
}];
|
||||
[CATransaction commit];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setIndeterminate:(BOOL)indeterminate
|
||||
{
|
||||
[super setIndeterminate:indeterminate];
|
||||
if (self.indeterminate == YES) {
|
||||
//Draw the indeterminate circle
|
||||
[self drawBackground];
|
||||
|
||||
//Create the rotation animation
|
||||
CABasicAnimation *rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
|
||||
rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 2.0];
|
||||
rotationAnimation.duration = 1;
|
||||
rotationAnimation.cumulative = YES;
|
||||
rotationAnimation.repeatCount = HUGE_VALF;
|
||||
|
||||
//Set the animations
|
||||
[_backgroundLayer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
|
||||
[CATransaction begin];
|
||||
[_progressLayer addAnimation:[self hideAnimation] forKey:kM13ProgressViewRingHideKey];
|
||||
[_percentageLabel.layer addAnimation:[self hideAnimation] forKey:kM13ProgressViewRingHideKey];
|
||||
[CATransaction commit];
|
||||
} else {
|
||||
//Animate
|
||||
[CATransaction begin];
|
||||
[_progressLayer addAnimation:[self showAnimation] forKey:kM13ProgressViewRingShowKey];
|
||||
[_percentageLabel.layer addAnimation:[self showAnimation] forKey:kM13ProgressViewRingShowKey];
|
||||
[CATransaction setCompletionBlock:^{
|
||||
//Remove the rotation animation and reset the background
|
||||
[_backgroundLayer removeAnimationForKey:@"rotationAnimation"];
|
||||
[self drawBackground];
|
||||
}];
|
||||
[CATransaction commit];
|
||||
}
|
||||
}
|
||||
|
||||
- (CABasicAnimation *)showAnimation
|
||||
{
|
||||
//Show the progress layer and percentage
|
||||
CABasicAnimation *showAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
|
||||
showAnimation.fromValue = [NSNumber numberWithFloat:0.0];
|
||||
showAnimation.toValue = [NSNumber numberWithFloat:1.0];
|
||||
showAnimation.duration = self.animationDuration;
|
||||
showAnimation.repeatCount = 1.0;
|
||||
//Prevent the animation from resetting
|
||||
showAnimation.fillMode = kCAFillModeForwards;
|
||||
showAnimation.removedOnCompletion = NO;
|
||||
return showAnimation;
|
||||
}
|
||||
|
||||
- (CABasicAnimation *)hideAnimation
|
||||
{
|
||||
//Hide the progress layer and percentage
|
||||
CABasicAnimation *hideAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
|
||||
hideAnimation.fromValue = [NSNumber numberWithFloat:1.0];
|
||||
hideAnimation.toValue = [NSNumber numberWithFloat:0.0];
|
||||
hideAnimation.duration = self.animationDuration;
|
||||
hideAnimation.repeatCount = 1.0;
|
||||
//Prevent the animation from resetting
|
||||
hideAnimation.fillMode = kCAFillModeForwards;
|
||||
hideAnimation.removedOnCompletion = NO;
|
||||
return hideAnimation;
|
||||
}
|
||||
|
||||
#pragma mark Layout
|
||||
|
||||
- (void)layoutSubviews
|
||||
{
|
||||
//Update frames of layers
|
||||
_backgroundLayer.frame = self.bounds;
|
||||
_progressLayer.frame = self.bounds;
|
||||
_iconLayer.frame = self.bounds;
|
||||
_percentageLabel.frame = self.bounds;
|
||||
|
||||
//Update font size
|
||||
_percentageLabel.font = [UIFont systemFontOfSize:(self.bounds.size.width / 5)];
|
||||
_percentageLabel.textColor = self.primaryColor;
|
||||
|
||||
//Update line widths if not overriden
|
||||
if (!_backgroundRingWidthOverriden) {
|
||||
_backgroundRingWidth = fmaxf(self.frame.size.width * .025, 1.0);
|
||||
}
|
||||
if (!_progressRingWidthOverriden) {
|
||||
_progressRingWidth = _backgroundRingWidth * 3;
|
||||
}
|
||||
|
||||
//Redraw
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setFrame:(CGRect)frame
|
||||
{
|
||||
//Keep the progress view square.
|
||||
if (frame.size.width != frame.size.height) {
|
||||
frame.size.height = frame.size.width;
|
||||
}
|
||||
[super setFrame:frame];
|
||||
}
|
||||
|
||||
- (CGSize)intrinsicContentSize
|
||||
{
|
||||
//This progress view scales
|
||||
return CGSizeMake(UIViewNoIntrinsicMetric, UIViewNoIntrinsicMetric);
|
||||
}
|
||||
|
||||
#pragma mark Drawing
|
||||
|
||||
- (void)drawRect:(CGRect)rect
|
||||
{
|
||||
[super drawRect:rect];
|
||||
|
||||
//Draw the background
|
||||
[self drawBackground];
|
||||
|
||||
//Draw Icons
|
||||
[self drawIcon];
|
||||
|
||||
//Draw Progress
|
||||
[self drawProgress];
|
||||
}
|
||||
|
||||
- (void)drawSuccess
|
||||
{
|
||||
//Draw relative to a base size and percentage, that way the check can be drawn for any size.*/
|
||||
CGFloat radius = (self.frame.size.width / 2.0);
|
||||
CGFloat size = radius * .3;
|
||||
|
||||
//Create the path
|
||||
UIBezierPath *path = [UIBezierPath bezierPath];
|
||||
[path moveToPoint:CGPointMake(0, 0)];
|
||||
[path addLineToPoint:CGPointMake(0, size * 2)];
|
||||
[path addLineToPoint:CGPointMake(size * 3, size * 2)];
|
||||
[path addLineToPoint:CGPointMake(size * 3, size)];
|
||||
[path addLineToPoint:CGPointMake(size, size)];
|
||||
[path addLineToPoint:CGPointMake(size, 0)];
|
||||
[path closePath];
|
||||
|
||||
//Rotate it through -45 degrees...
|
||||
[path applyTransform:CGAffineTransformMakeRotation(-M_PI_4)];
|
||||
|
||||
//Center it
|
||||
[path applyTransform:CGAffineTransformMakeTranslation(radius * .46, 1.02 * radius)];
|
||||
|
||||
//Set path
|
||||
[_iconLayer setPath:path.CGPath];
|
||||
[_iconLayer setFillColor:self.primaryColor.CGColor];
|
||||
}
|
||||
|
||||
- (void)drawFailure
|
||||
{
|
||||
//Calculate the size of the X
|
||||
CGFloat radius = self.frame.size.width / 2.0;
|
||||
CGFloat size = radius * .3;
|
||||
|
||||
//Create the path for the X
|
||||
UIBezierPath *xPath = [UIBezierPath bezierPath];
|
||||
[xPath moveToPoint:CGPointMake(size, 0)];
|
||||
[xPath addLineToPoint:CGPointMake(2 * size, 0)];
|
||||
[xPath addLineToPoint:CGPointMake(2 * size, size)];
|
||||
[xPath addLineToPoint:CGPointMake(3 * size, size)];
|
||||
[xPath addLineToPoint:CGPointMake(3 * size, 2 * size)];
|
||||
[xPath addLineToPoint:CGPointMake(2 * size, 2 * size)];
|
||||
[xPath addLineToPoint:CGPointMake(2 * size, 3 * size)];
|
||||
[xPath addLineToPoint:CGPointMake(size, 3 * size)];
|
||||
[xPath addLineToPoint:CGPointMake(size, 2 * size)];
|
||||
[xPath addLineToPoint:CGPointMake(0, 2 * size)];
|
||||
[xPath addLineToPoint:CGPointMake(0, size)];
|
||||
[xPath addLineToPoint:CGPointMake(size, size)];
|
||||
[xPath closePath];
|
||||
|
||||
|
||||
//Center it
|
||||
[xPath applyTransform:CGAffineTransformMakeTranslation(radius - (1.5 * size), radius - (1.5 * size))];
|
||||
|
||||
//Rotate path
|
||||
[xPath applyTransform:CGAffineTransformMake(cos(M_PI_4),sin(M_PI_4),-sin(M_PI_4),cos(M_PI_4),radius * (1 - cos(M_PI_4)+ sin(M_PI_4)),radius * (1 - sin(M_PI_4)- cos(M_PI_4)))];
|
||||
|
||||
//Set path and fill color
|
||||
[_iconLayer setPath:xPath.CGPath];
|
||||
[_iconLayer setFillColor:self.primaryColor.CGColor];
|
||||
}
|
||||
|
||||
- (void)drawBackground
|
||||
{
|
||||
//Create parameters to draw background
|
||||
float startAngle = - M_PI_2;
|
||||
float endAngle = startAngle + (2.0 * M_PI);
|
||||
CGPoint center = CGPointMake(self.bounds.size.width / 2.0, self.bounds.size.width / 2.0);
|
||||
CGFloat radius = (self.bounds.size.width - _backgroundRingWidth) / 2.0;
|
||||
|
||||
//If indeterminate, recalculate the end angle
|
||||
if (self.indeterminate) {
|
||||
endAngle = .8 * endAngle;
|
||||
}
|
||||
|
||||
//Draw path
|
||||
UIBezierPath *path = [UIBezierPath bezierPath];
|
||||
path.lineWidth = _progressRingWidth;
|
||||
path.lineCapStyle = kCGLineCapRound;
|
||||
[path addArcWithCenter:center radius:radius startAngle:startAngle endAngle:endAngle clockwise:YES];
|
||||
|
||||
//Set the path
|
||||
_backgroundLayer.path = path.CGPath;
|
||||
}
|
||||
|
||||
- (void)drawProgress
|
||||
{
|
||||
//Create parameters to draw progress
|
||||
float startAngle = - M_PI_2;
|
||||
float endAngle = startAngle + (2.0 * M_PI * self.progress);
|
||||
CGPoint center = CGPointMake(self.bounds.size.width / 2.0, self.bounds.size.width / 2.0);
|
||||
CGFloat radius = (self.bounds.size.width - _progressRingWidth) / 2.0;
|
||||
|
||||
//Draw path
|
||||
UIBezierPath *path = [UIBezierPath bezierPath];
|
||||
path.lineCapStyle = kCGLineCapButt;
|
||||
path.lineWidth = _progressRingWidth;
|
||||
[path addArcWithCenter:center radius:radius startAngle:startAngle endAngle:endAngle clockwise:YES];
|
||||
|
||||
//Set the path
|
||||
[_progressLayer setPath:path.CGPath];
|
||||
|
||||
//Update label
|
||||
_percentageLabel.text = [_percentageFormatter stringFromNumber:[NSNumber numberWithFloat:self.progress]];
|
||||
}
|
||||
|
||||
- (void)drawIcon
|
||||
{
|
||||
if (_currentAction == M13ProgressViewActionSuccess) {
|
||||
[self drawSuccess];
|
||||
} else if (_currentAction == M13ProgressViewActionFailure) {
|
||||
[self drawFailure];
|
||||
} else if (_currentAction == M13ProgressViewActionNone) {
|
||||
//Clear layer
|
||||
_iconLayer.path = nil;
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,56 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewSegmentedBar.h
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import "M13ProgressView.h"
|
||||
|
||||
typedef enum {
|
||||
M13ProgressViewSegmentedBarProgressDirectionLeftToRight,
|
||||
M13ProgressViewSegmentedBarProgressDirectionBottomToTop,
|
||||
M13ProgressViewSegmentedBarProgressDirectionRightToLeft,
|
||||
M13ProgressViewSegmentedBarProgressDirectionTopToBottom
|
||||
} M13ProgressViewSegmentedBarProgressDirection;
|
||||
|
||||
typedef enum {
|
||||
M13ProgressViewSegmentedBarSegmentShapeRectangle,
|
||||
M13ProgressViewSegmentedBarSegmentShapeRoundedRect,
|
||||
M13ProgressViewSegmentedBarSegmentShapeCircle
|
||||
} M13ProgressViewSegmentedBarSegmentShape;
|
||||
|
||||
/**A progress bar that shows progress with discrete values.*/
|
||||
@interface M13ProgressViewSegmentedBar : M13ProgressView
|
||||
|
||||
/**@name Appearance*/
|
||||
/**The direction of progress. (What direction the fill proceeds in.)*/
|
||||
@property (nonatomic, assign) M13ProgressViewSegmentedBarProgressDirection progressDirection;
|
||||
/**The shape of the segments.*/
|
||||
@property (nonatomic, assign) M13ProgressViewSegmentedBarSegmentShape segmentShape;
|
||||
/**The corner radius of the segment shape if the shape is set to M13ProgressViewSegmentedBarSegmentShapeRoundedRect.*/
|
||||
@property (nonatomic, assign) CGFloat cornerRadius;
|
||||
/**The number of segments to display in the progress view.*/
|
||||
@property (nonatomic, assign) NSInteger numberOfSegments;
|
||||
/**The separation between segments in points. Must be less than self.width / numberOfSegments.*/
|
||||
@property (nonatomic, assign) CGFloat segmentSeparation;
|
||||
/**@name Actions*/
|
||||
/**The color the bar changes to for the success action.*/
|
||||
@property (nonatomic, retain) UIColor *successColor;
|
||||
/**The color the bar changes to for the failure action.*/
|
||||
@property (nonatomic, retain) UIColor *failureColor;
|
||||
/**The array of UIColors that the segments will be colored with.
|
||||
@note Each index in the array coresponds to a single segment. If there are more indicies then segments, not all colors will be used. If there are less indicies than segments, the colors will be looped. If nil, then a solid fill will be used.*/
|
||||
@property (nonatomic, retain) NSArray *primaryColors;
|
||||
/**The array of UIColors that the segment's backgrounds will be colored with.
|
||||
@note Each index in the array coresponds to a single segment. If there are more indicies then segments, not all colors will be used. If there are less indicies than segments, the colors will be looped. If nil, then a solid fill will be used.*/
|
||||
@property (nonatomic, retain) NSArray *secondaryColors;
|
||||
|
||||
|
||||
@end
|
||||
@@ -1,549 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewSegmentedBar.m
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import "M13ProgressViewSegmentedBar.h"
|
||||
|
||||
@interface M13ProgressViewSegmentedBar ()
|
||||
|
||||
/**The start progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationFromValue;
|
||||
/**The end progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationToValue;
|
||||
/**The start time interval for the animaiton.*/
|
||||
@property (nonatomic, assign) CFTimeInterval animationStartTime;
|
||||
/**Link to the display to keep animations in sync.*/
|
||||
@property (nonatomic, strong) CADisplayLink *displayLink;
|
||||
/**Allow us to write to the progress.*/
|
||||
@property (nonatomic, readwrite) CGFloat progress;
|
||||
/**The layer that progress is shown on.*/
|
||||
@property (nonatomic, retain) CAShapeLayer *segmentsLayer;
|
||||
/**The action currently being performed.*/
|
||||
@property (nonatomic, assign) M13ProgressViewAction currentAction;
|
||||
|
||||
@end
|
||||
|
||||
@implementation M13ProgressViewSegmentedBar
|
||||
{
|
||||
NSInteger indeterminateIndex;
|
||||
NSTimer *indeterminateTimer;
|
||||
NSArray *segmentColorsPrimary;
|
||||
NSArray *segmentColorsBackground;
|
||||
}
|
||||
|
||||
@dynamic progress;
|
||||
|
||||
#pragma mark Initalization and setup
|
||||
|
||||
- (id)init
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(NSCoder *)aDecoder
|
||||
{
|
||||
self = [super initWithCoder:aDecoder];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)setup
|
||||
{
|
||||
//Set own background color
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
|
||||
//Set default colors
|
||||
self.primaryColor = [UIColor colorWithRed:0 green:122/255.0 blue:1.0 alpha:1.0];
|
||||
self.secondaryColor = [UIColor colorWithRed:181/255.0 green:182/255.0 blue:183/255.0 alpha:1.0];
|
||||
_successColor = [UIColor colorWithRed:63.0f/255.0f green:226.0f/255.0f blue:80.0f/255.0f alpha:1];
|
||||
_failureColor = [UIColor colorWithRed:249.0f/255.0f green:37.0f/255.0f blue:0 alpha:1];
|
||||
|
||||
//ProgressLayer
|
||||
_segmentsLayer = [CAShapeLayer layer];
|
||||
_segmentsLayer.frame = self.bounds;
|
||||
[self.layer addSublayer:_segmentsLayer];
|
||||
|
||||
//Set defauts
|
||||
self.animationDuration = .3;
|
||||
_progressDirection = M13ProgressViewSegmentedBarProgressDirectionLeftToRight;
|
||||
self.numberOfSegments = 16;
|
||||
_segmentSeparation = 10.0;
|
||||
_cornerRadius = 2.0;
|
||||
|
||||
//Layout
|
||||
[self layoutSubviews];
|
||||
}
|
||||
|
||||
#pragma mark Appearance
|
||||
|
||||
- (void)setPrimaryColor:(UIColor *)primaryColor
|
||||
{
|
||||
[super setPrimaryColor:primaryColor];
|
||||
[self resetColorsForSegments];
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setSecondaryColor:(UIColor *)secondaryColor
|
||||
{
|
||||
[super setSecondaryColor:secondaryColor];
|
||||
[self resetColorsForSegments];
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setSuccessColor:(UIColor *)successColor
|
||||
{
|
||||
_successColor = successColor;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setFailureColor:(UIColor *)failureColor
|
||||
{
|
||||
_failureColor = failureColor;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setProgressDirection:(M13ProgressViewSegmentedBarProgressDirection)progressDirection
|
||||
{
|
||||
_progressDirection = progressDirection;
|
||||
[self layoutSubviews];
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setNumberOfSegments:(NSInteger)numberOfSegments
|
||||
{
|
||||
_numberOfSegments = numberOfSegments;
|
||||
//First remove all the sub layers
|
||||
_segmentsLayer.sublayers = nil;
|
||||
//Then add sub layers equal to the number of segments
|
||||
for (int i = 0; i < numberOfSegments; i++) {
|
||||
CAShapeLayer *segment = [CAShapeLayer layer];
|
||||
segment.frame = self.bounds;
|
||||
[_segmentsLayer addSublayer:segment];
|
||||
}
|
||||
//Reset the colors for the segements
|
||||
[self resetColorsForSegments];
|
||||
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setSegmentSeparation:(CGFloat)segmentSeparation
|
||||
{
|
||||
_segmentSeparation = segmentSeparation;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setSegmentShape:(M13ProgressViewSegmentedBarSegmentShape)segmentShape
|
||||
{
|
||||
_segmentShape = segmentShape;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setPrimaryColors:(NSArray *)primaryColors
|
||||
{
|
||||
_primaryColors = primaryColors;
|
||||
[self resetColorsForSegments];
|
||||
}
|
||||
|
||||
- (void)setSecondaryColors:(NSArray *)secondaryColors
|
||||
{
|
||||
_secondaryColors = secondaryColors;
|
||||
[self resetColorsForSegments];
|
||||
}
|
||||
|
||||
#pragma mark Actions
|
||||
|
||||
- (void)setProgress:(CGFloat)progress animated:(BOOL)animated
|
||||
{
|
||||
if (animated == NO) {
|
||||
if (_displayLink) {
|
||||
//Kill running animations
|
||||
[_displayLink invalidate];
|
||||
_displayLink = nil;
|
||||
}
|
||||
[super setProgress:progress animated:NO];
|
||||
[self setNeedsDisplay];
|
||||
} else {
|
||||
_animationStartTime = CACurrentMediaTime();
|
||||
_animationFromValue = self.progress;
|
||||
_animationToValue = progress;
|
||||
if (!_displayLink) {
|
||||
//Create and setup the display link
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(animateProgress:)];
|
||||
[self.displayLink addToRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
|
||||
} /*else {
|
||||
//Reuse the current display link
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
- (void)animateProgress:(CADisplayLink *)displayLink
|
||||
{
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
CGFloat dt = (displayLink.timestamp - _animationStartTime) / self.animationDuration;
|
||||
if (dt >= 1.0) {
|
||||
//Order is important! Otherwise concurrency will cause errors, because setProgress: will detect an animation in progress and try to stop it by itself. Once over one, set to actual progress amount. Animation is over.
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = nil;
|
||||
[super setProgress:_animationToValue animated:NO];
|
||||
[self setNeedsDisplay];
|
||||
return;
|
||||
}
|
||||
|
||||
//Set progress
|
||||
[super setProgress:_animationFromValue + dt * (_animationToValue - _animationFromValue) animated:YES];
|
||||
[self setNeedsDisplay];
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated
|
||||
{
|
||||
if (action == M13ProgressViewActionNone && _currentAction != M13ProgressViewActionNone) {
|
||||
_currentAction = action;
|
||||
[self setNeedsDisplay];
|
||||
[CATransaction begin];
|
||||
for (int i = 0; i < _numberOfSegments; i++) {
|
||||
CAShapeLayer *layer = _segmentsLayer.sublayers[i];
|
||||
CABasicAnimation *barAnimation = [self barColorAnimation];
|
||||
barAnimation.fromValue = (id)layer.fillColor;
|
||||
barAnimation.toValue = (id)[self colorForSegment:i].CGColor;
|
||||
[layer addAnimation:barAnimation forKey:@"fillColor"];
|
||||
}
|
||||
[CATransaction commit];
|
||||
} else if (action == M13ProgressViewActionSuccess && _currentAction != M13ProgressViewActionSuccess) {
|
||||
_currentAction = action;
|
||||
[self setNeedsDisplay];
|
||||
[CATransaction begin];
|
||||
for (int i = 0; i < _numberOfSegments; i++) {
|
||||
CAShapeLayer *layer = _segmentsLayer.sublayers[i];
|
||||
CABasicAnimation *barAnimation = [self barColorAnimation];
|
||||
barAnimation.fromValue = (id)layer.fillColor;
|
||||
barAnimation.toValue = (id)_successColor.CGColor;
|
||||
[layer addAnimation:barAnimation forKey:@"fillColor"];
|
||||
}
|
||||
[CATransaction commit];
|
||||
} else if (action == M13ProgressViewActionFailure && _currentAction != M13ProgressViewActionFailure) {
|
||||
_currentAction = action;
|
||||
[self setNeedsDisplay];
|
||||
[CATransaction begin];
|
||||
for (int i = 0; i < _numberOfSegments; i++) {
|
||||
CAShapeLayer *layer = _segmentsLayer.sublayers[i];
|
||||
CABasicAnimation *barAnimation = [self barColorAnimation];
|
||||
barAnimation.fromValue = (id)layer.fillColor;
|
||||
barAnimation.toValue = (id)_failureColor.CGColor;
|
||||
[layer addAnimation:barAnimation forKey:@"fillColor"];
|
||||
}
|
||||
[CATransaction commit];
|
||||
}
|
||||
}
|
||||
|
||||
- (CABasicAnimation *)barColorAnimation
|
||||
{
|
||||
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"fillColor"];
|
||||
animation.duration = 2 * self.animationDuration;
|
||||
animation.repeatCount = 1;
|
||||
//Prevent the animation from resetting
|
||||
animation.fillMode = kCAFillModeForwards;
|
||||
animation.removedOnCompletion = NO;
|
||||
return animation;
|
||||
}
|
||||
|
||||
- (void)setIndeterminate:(BOOL)indeterminate
|
||||
{
|
||||
[super setIndeterminate:indeterminate];
|
||||
|
||||
if (indeterminate) {
|
||||
indeterminateTimer = [NSTimer timerWithTimeInterval:(1.5 / (float)_numberOfSegments) target:self selector:@selector(drawIndeterminate) userInfo:Nil repeats:YES];
|
||||
[[NSRunLoop mainRunLoop] addTimer:indeterminateTimer forMode:NSRunLoopCommonModes];
|
||||
} else {
|
||||
[indeterminateTimer invalidate];
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark Layout
|
||||
|
||||
- (void)layoutSubviews
|
||||
{
|
||||
[super layoutSubviews];
|
||||
|
||||
_segmentsLayer.frame = self.bounds;
|
||||
|
||||
for (CAShapeLayer *layer in _segmentsLayer.sublayers) {
|
||||
layer.frame = self.bounds;
|
||||
}
|
||||
}
|
||||
|
||||
- (CGSize)intrinsicContentSize
|
||||
{
|
||||
return CGSizeMake(UIViewNoIntrinsicMetric, UIViewNoIntrinsicMetric);
|
||||
}
|
||||
|
||||
#pragma mark Drawing
|
||||
|
||||
- (void)resetColorsForSegments
|
||||
{
|
||||
if (_primaryColors == nil) {
|
||||
NSMutableArray *tempArray = [NSMutableArray arrayWithCapacity:_numberOfSegments];
|
||||
for (int i = 0; i < _numberOfSegments; i++) {
|
||||
[tempArray addObject:self.primaryColor];
|
||||
}
|
||||
segmentColorsPrimary = tempArray.copy;
|
||||
}
|
||||
|
||||
if (_numberOfSegments == _primaryColors.count) {
|
||||
segmentColorsPrimary = _primaryColors;
|
||||
}
|
||||
|
||||
if (_numberOfSegments != _primaryColors.count && _primaryColors.count != 0) {
|
||||
NSMutableArray *tempArray = [NSMutableArray arrayWithCapacity:_numberOfSegments];
|
||||
for (int i = 0; i < _numberOfSegments; i++) {
|
||||
if (_numberOfSegments > _primaryColors.count) {
|
||||
[tempArray addObject:_primaryColors[i]];
|
||||
} else {
|
||||
[tempArray addObject:_primaryColors[i % _primaryColors.count]];
|
||||
}
|
||||
}
|
||||
segmentColorsPrimary = tempArray.copy;
|
||||
}
|
||||
|
||||
if (_secondaryColors == nil) {
|
||||
NSMutableArray *tempArray = [NSMutableArray arrayWithCapacity:_numberOfSegments];
|
||||
for (int i = 0; i < _numberOfSegments; i++) {
|
||||
[tempArray addObject:self.secondaryColor];
|
||||
}
|
||||
segmentColorsBackground = tempArray.copy;
|
||||
}
|
||||
|
||||
if (_numberOfSegments == _secondaryColors.count) {
|
||||
segmentColorsBackground = _secondaryColors;
|
||||
}
|
||||
|
||||
if (_numberOfSegments != _secondaryColors.count && _secondaryColors.count != 0) {
|
||||
NSMutableArray *tempArray = [NSMutableArray arrayWithCapacity:_numberOfSegments];
|
||||
for (int i = 0; i < _numberOfSegments; i++) {
|
||||
if (_numberOfSegments > _secondaryColors.count) {
|
||||
[tempArray addObject:_secondaryColors[i]];
|
||||
} else {
|
||||
[tempArray addObject:_secondaryColors[i % _secondaryColors.count]];
|
||||
}
|
||||
}
|
||||
segmentColorsBackground = tempArray.copy;
|
||||
}
|
||||
}
|
||||
|
||||
- (NSInteger)numberOfFullSegments
|
||||
{
|
||||
return (NSInteger)floorf(self.progress * _numberOfSegments);
|
||||
}
|
||||
|
||||
- (UIColor *)colorForSegment:(NSUInteger)index
|
||||
{
|
||||
if (index < [self numberOfFullSegments]) {
|
||||
return segmentColorsPrimary[index];
|
||||
} else {
|
||||
return segmentColorsBackground[index];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)drawRect:(CGRect)rect
|
||||
{
|
||||
[super drawRect:rect];
|
||||
if (!self.indeterminate) {
|
||||
[self drawProgress];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)drawProgress
|
||||
{
|
||||
//Calculate the segment width (totalWidth - totalSeparationwidth / numberOfSegments
|
||||
CGFloat segmentWidth = 0;
|
||||
if (_progressDirection == M13ProgressViewSegmentedBarProgressDirectionLeftToRight || _progressDirection == M13ProgressViewSegmentedBarProgressDirectionRightToLeft) {
|
||||
segmentWidth = (self.bounds.size.width - ((_numberOfSegments - 1) * _segmentSeparation)) / _numberOfSegments;
|
||||
} else {
|
||||
segmentWidth = (self.bounds.size.height - ((_numberOfSegments - 1) * _segmentSeparation)) / _numberOfSegments;
|
||||
}
|
||||
//Calculate the corner radius
|
||||
CGFloat cornerRadius = 0;
|
||||
if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRoundedRect) {
|
||||
cornerRadius = _cornerRadius;
|
||||
} else if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeCircle) {
|
||||
cornerRadius = floorf(self.bounds.size.height < segmentWidth ? self.bounds.size.height / 2.0 : segmentWidth / 2.0);
|
||||
}
|
||||
|
||||
//Iterate through all the segments that are full.
|
||||
for (int i = 0; i < _numberOfSegments; i++) {
|
||||
UIBezierPath *path = [UIBezierPath bezierPath];
|
||||
//Move to top left of rectangle
|
||||
if (_progressDirection == M13ProgressViewSegmentedBarProgressDirectionLeftToRight) {
|
||||
if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRectangle) {
|
||||
CGRect rect = CGRectMake(i * (segmentWidth + _segmentSeparation), 0, segmentWidth, self.bounds.size.height);
|
||||
path = [UIBezierPath bezierPathWithRect:rect];
|
||||
} else if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRoundedRect) {
|
||||
CGRect rect = CGRectMake(i * (segmentWidth + _segmentSeparation), 0, segmentWidth, self.bounds.size.height);
|
||||
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
|
||||
} else if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeCircle) {
|
||||
CGRect rect = CGRectMake(i * (segmentWidth + _segmentSeparation), (self.bounds.size.height - (2 * cornerRadius)) / 2, 2 * cornerRadius, 2 * cornerRadius);
|
||||
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
|
||||
}
|
||||
|
||||
} else if (_progressDirection == M13ProgressViewSegmentedBarProgressDirectionRightToLeft) {
|
||||
if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRectangle) {
|
||||
CGRect rect = CGRectMake(self.bounds.size.width - (i * (segmentWidth + _segmentSeparation)) - segmentWidth, 0, segmentWidth, self.bounds.size.height);
|
||||
path = [UIBezierPath bezierPathWithRect:rect];
|
||||
} else if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRoundedRect) {
|
||||
CGRect rect = CGRectMake(self.bounds.size.width - (i * (segmentWidth + _segmentSeparation)) - segmentWidth, 0, segmentWidth, self.bounds.size.height);
|
||||
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
|
||||
} else if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeCircle) {
|
||||
CGRect rect = CGRectMake(self.bounds.size.width - (i * (segmentWidth + _segmentSeparation)) - segmentWidth, (self.bounds.size.height - (2 * cornerRadius)) / 2, 2 * cornerRadius, 2 * cornerRadius);
|
||||
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
|
||||
}
|
||||
|
||||
} else if (_progressDirection == M13ProgressViewSegmentedBarProgressDirectionBottomToTop) {
|
||||
if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRectangle) {
|
||||
CGRect rect = CGRectMake(0, self.bounds.size.height - (i * (segmentWidth + _segmentSeparation)) - segmentWidth, self.bounds.size.width, segmentWidth);
|
||||
path = [UIBezierPath bezierPathWithRect:rect];
|
||||
} else if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRoundedRect) {
|
||||
CGRect rect = CGRectMake(0, self.bounds.size.height - (i * (segmentWidth + _segmentSeparation)) - segmentWidth, self.bounds.size.width, segmentWidth);
|
||||
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
|
||||
} else if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeCircle) {
|
||||
CGRect rect = CGRectMake((self.bounds.size.width - (2 * cornerRadius)) / 2, self.bounds.size.height - (i * (segmentWidth + _segmentSeparation)) - segmentWidth, 2 * cornerRadius, 2 * cornerRadius);
|
||||
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
|
||||
}
|
||||
|
||||
} else if (_progressDirection == M13ProgressViewSegmentedBarProgressDirectionTopToBottom) {
|
||||
if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRectangle) {
|
||||
CGRect rect = CGRectMake(0, (i * (segmentWidth + _segmentSeparation)), self.bounds.size.width, segmentWidth);
|
||||
path = [UIBezierPath bezierPathWithRect:rect];
|
||||
} else if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRoundedRect) {
|
||||
CGRect rect = CGRectMake(0, (i * (segmentWidth + _segmentSeparation)), self.bounds.size.width, segmentWidth);
|
||||
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
|
||||
} else if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeCircle) {
|
||||
CGRect rect = CGRectMake((self.bounds.size.width - (2 * cornerRadius)) / 2, (i * (segmentWidth + _segmentSeparation)), 2 * cornerRadius, 2 * cornerRadius);
|
||||
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
|
||||
}
|
||||
}
|
||||
|
||||
//Add segment to the proper layer, and color it
|
||||
CAShapeLayer *layer = _segmentsLayer.sublayers[i];
|
||||
layer.path = path.CGPath;
|
||||
layer.fillColor = [self colorForSegment:i].CGColor;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)drawIndeterminate
|
||||
{
|
||||
//Calculate the segment width (totalWidth - totalSeparationwidth / numberOfSegments
|
||||
CGFloat segmentWidth = 0;
|
||||
if (_progressDirection == M13ProgressViewSegmentedBarProgressDirectionLeftToRight || _progressDirection == M13ProgressViewSegmentedBarProgressDirectionRightToLeft) {
|
||||
segmentWidth = (self.bounds.size.width - ((_numberOfSegments - 1) * _segmentSeparation)) / _numberOfSegments;
|
||||
} else {
|
||||
segmentWidth = (self.bounds.size.height - ((_numberOfSegments - 1) * _segmentSeparation)) / _numberOfSegments;
|
||||
}
|
||||
//Calculate the corner radius
|
||||
CGFloat cornerRadius = 0;
|
||||
if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRoundedRect) {
|
||||
cornerRadius = _cornerRadius;
|
||||
} else if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeCircle) {
|
||||
cornerRadius = floorf(self.bounds.size.height < segmentWidth ? self.bounds.size.height / 2.0 : segmentWidth / 2.0);
|
||||
}
|
||||
//What index will the segments be colored from.
|
||||
NSInteger numberOfSegmentsToBeColored = _numberOfSegments / 4;
|
||||
|
||||
//Iterate through all the segments that are full.
|
||||
for (int i = 0; i < _numberOfSegments; i++) {
|
||||
UIBezierPath *path = [UIBezierPath bezierPath];
|
||||
//Move to top left of rectangle
|
||||
if (_progressDirection == M13ProgressViewSegmentedBarProgressDirectionLeftToRight) {
|
||||
if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRectangle) {
|
||||
CGRect rect = CGRectMake(i * (segmentWidth + _segmentSeparation), 0, segmentWidth, self.bounds.size.height);
|
||||
path = [UIBezierPath bezierPathWithRect:rect];
|
||||
} else if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRoundedRect) {
|
||||
CGRect rect = CGRectMake(i * (segmentWidth + _segmentSeparation), 0, segmentWidth, self.bounds.size.height);
|
||||
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
|
||||
} else if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeCircle) {
|
||||
CGRect rect = CGRectMake(i * (segmentWidth + _segmentSeparation), (self.bounds.size.height - (2 * cornerRadius)) / 2, 2 * cornerRadius, 2 * cornerRadius);
|
||||
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
|
||||
}
|
||||
|
||||
} else if (_progressDirection == M13ProgressViewSegmentedBarProgressDirectionRightToLeft) {
|
||||
if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRectangle) {
|
||||
CGRect rect = CGRectMake(self.bounds.size.width - (i * (segmentWidth + _segmentSeparation)) - segmentWidth, 0, segmentWidth, self.bounds.size.height);
|
||||
path = [UIBezierPath bezierPathWithRect:rect];
|
||||
} else if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRoundedRect) {
|
||||
CGRect rect = CGRectMake(self.bounds.size.width - (i * (segmentWidth + _segmentSeparation)) - segmentWidth, 0, segmentWidth, self.bounds.size.height);
|
||||
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
|
||||
} else if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeCircle) {
|
||||
CGRect rect = CGRectMake(self.bounds.size.width - (i * (segmentWidth + _segmentSeparation)) - segmentWidth, (self.bounds.size.height - (2 * cornerRadius)) / 2, 2 * cornerRadius, 2 * cornerRadius);
|
||||
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
|
||||
}
|
||||
|
||||
} else if (_progressDirection == M13ProgressViewSegmentedBarProgressDirectionBottomToTop) {
|
||||
if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRectangle) {
|
||||
CGRect rect = CGRectMake(0, self.bounds.size.height - (i * (segmentWidth + _segmentSeparation)) - segmentWidth, self.bounds.size.width, segmentWidth);
|
||||
path = [UIBezierPath bezierPathWithRect:rect];
|
||||
} else if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRoundedRect) {
|
||||
CGRect rect = CGRectMake(0, self.bounds.size.height - (i * (segmentWidth + _segmentSeparation)) - segmentWidth, self.bounds.size.width, segmentWidth);
|
||||
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
|
||||
} else if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeCircle) {
|
||||
CGRect rect = CGRectMake((self.bounds.size.width - (2 * cornerRadius)) / 2, self.bounds.size.height - (i * (segmentWidth + _segmentSeparation)) - segmentWidth, 2 * cornerRadius, 2 * cornerRadius);
|
||||
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
|
||||
}
|
||||
|
||||
} else if (_progressDirection == M13ProgressViewSegmentedBarProgressDirectionTopToBottom) {
|
||||
if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRectangle) {
|
||||
CGRect rect = CGRectMake(0, (i * (segmentWidth + _segmentSeparation)), self.bounds.size.width, segmentWidth);
|
||||
path = [UIBezierPath bezierPathWithRect:rect];
|
||||
} else if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRoundedRect) {
|
||||
CGRect rect = CGRectMake(0, (i * (segmentWidth + _segmentSeparation)), self.bounds.size.width, segmentWidth);
|
||||
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
|
||||
} else if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeCircle) {
|
||||
CGRect rect = CGRectMake((self.bounds.size.width - (2 * cornerRadius)) / 2, (i * (segmentWidth + _segmentSeparation)), 2 * cornerRadius, 2 * cornerRadius);
|
||||
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
|
||||
}
|
||||
}
|
||||
|
||||
//Add the segment to the proper path //Add segment to the proper layer, and color it
|
||||
CAShapeLayer *layer = _segmentsLayer.sublayers[i];
|
||||
layer.path = path.CGPath;
|
||||
if (i >= indeterminateIndex && i < indeterminateIndex + numberOfSegmentsToBeColored) {
|
||||
layer.fillColor = ((UIColor *)segmentColorsPrimary[i]).CGColor;
|
||||
} else {
|
||||
layer.fillColor = ((UIColor *)segmentColorsBackground[i]).CGColor;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//increase the index by one for movement
|
||||
indeterminateIndex += 1;
|
||||
if (indeterminateIndex == numberOfSegmentsToBeColored + _numberOfSegments) {
|
||||
indeterminateIndex = -numberOfSegmentsToBeColored;
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,38 +0,0 @@
|
||||
//
|
||||
// M13ProgressVewSegmentedRing.h
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
typedef enum {
|
||||
M13ProgressViewSegmentedRingSegmentBoundaryTypeWedge,
|
||||
M13ProgressViewSegmentedRingSegmentBoundaryTypeRectangle
|
||||
} M13ProgressViewSegmentedRingSegmentBoundaryType;
|
||||
|
||||
#import "M13ProgressView.h"
|
||||
|
||||
/**Progress is shown by a ring split up into segments.*/
|
||||
@interface M13ProgressViewSegmentedRing : M13ProgressView
|
||||
|
||||
/**@name Appearance*/
|
||||
/**The width of the progress ring in points.*/
|
||||
@property (nonatomic, assign) CGFloat progressRingWidth;
|
||||
/**The number of segments to display in the progress view.*/
|
||||
@property (nonatomic, assign) NSInteger numberOfSegments;
|
||||
/**The angle of the separation between the segments in radians.*/
|
||||
@property (nonatomic, assign) CGFloat segmentSeparationAngle;
|
||||
/**The type of boundary between segments.*/
|
||||
@property (nonatomic, assign) M13ProgressViewSegmentedRingSegmentBoundaryType segmentBoundaryType;
|
||||
/**@name Percentage*/
|
||||
/**Wether or not to display a percentage inside the ring.*/
|
||||
@property (nonatomic, assign) BOOL showPercentage;
|
||||
|
||||
|
||||
@end
|
||||
@@ -1,603 +0,0 @@
|
||||
//
|
||||
// M13ProgressVewSegmentedRing.m
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import "M13ProgressViewSegmentedRing.h"
|
||||
|
||||
@interface M13ProgressViewSegmentedRing ()
|
||||
/**The number formatter to display the progress percentage.*/
|
||||
@property (nonatomic, retain) NSNumberFormatter *percentageFormatter;
|
||||
/**The label that shows the percentage.*/
|
||||
@property (nonatomic, retain) UILabel *percentageLabel;
|
||||
/**The start progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationFromValue;
|
||||
/**The end progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationToValue;
|
||||
/**The start time interval for the animaiton.*/
|
||||
@property (nonatomic, assign) CFTimeInterval animationStartTime;
|
||||
/**Link to the display to keep animations in sync.*/
|
||||
@property (nonatomic, strong) CADisplayLink *displayLink;
|
||||
/**Allow us to write to the progress.*/
|
||||
@property (nonatomic, readwrite) CGFloat progress;
|
||||
/**The layer that progress is shown on.*/
|
||||
@property (nonatomic, retain) CAShapeLayer *progressLayer;
|
||||
/**The layer that the background shown on.*/
|
||||
@property (nonatomic, retain) CAShapeLayer *backgroundLayer;
|
||||
/**The layer that is used to render icons for success or failure.*/
|
||||
@property (nonatomic, retain) CAShapeLayer *iconLayer;
|
||||
/**The action currently being performed.*/
|
||||
@property (nonatomic, assign) M13ProgressViewAction currentAction;
|
||||
@end
|
||||
|
||||
#define kM13ProgressViewSegmentedRingHideKey @"Hide"
|
||||
#define kM13ProgressViewSegmentedRingShowKey @"Show"
|
||||
|
||||
@implementation M13ProgressViewSegmentedRing
|
||||
{
|
||||
//Wether or not the corresponding values have been overriden by the user
|
||||
BOOL _progressRingWidthOverriden;
|
||||
BOOL _segmentSeparationAngleOverriden;
|
||||
//The calculated angles of the concentric rings
|
||||
CGFloat outerRingAngle;
|
||||
CGFloat innerRingAngle;
|
||||
CGFloat _segmentSeparationInnerAngle;
|
||||
}
|
||||
|
||||
@dynamic progress;
|
||||
|
||||
#pragma mark Initalization and setup
|
||||
|
||||
- (id)init
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(NSCoder *)aDecoder
|
||||
{
|
||||
self = [super initWithCoder:aDecoder];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)setup
|
||||
{
|
||||
//Set own background color
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
|
||||
//Set defaut sizes
|
||||
_progressRingWidth = fmaxf(self.bounds.size.width * .25, 1.0);
|
||||
_progressRingWidthOverriden = NO;
|
||||
_segmentSeparationAngleOverriden = NO;
|
||||
self.animationDuration = .3;
|
||||
_showPercentage = YES;
|
||||
_numberOfSegments = 8;
|
||||
_segmentSeparationAngle = M_PI / (2 * _numberOfSegments);
|
||||
_segmentBoundaryType = M13ProgressViewSegmentedRingSegmentBoundaryTypeWedge;
|
||||
[self updateAngles];
|
||||
|
||||
//Set default colors
|
||||
self.primaryColor = [UIColor colorWithRed:0 green:122/255.0 blue:1.0 alpha:1.0];
|
||||
self.secondaryColor = [UIColor colorWithRed:181/255.0 green:182/255.0 blue:183/255.0 alpha:1.0];
|
||||
|
||||
//Set up the number formatter
|
||||
_percentageFormatter = [[NSNumberFormatter alloc] init];
|
||||
_percentageFormatter.numberStyle = NSNumberFormatterPercentStyle;
|
||||
|
||||
//Set up the background layer
|
||||
_backgroundLayer = [CAShapeLayer layer];
|
||||
_backgroundLayer.fillColor = self.secondaryColor.CGColor;
|
||||
[self.layer addSublayer:_backgroundLayer];
|
||||
|
||||
//Set up the progress layer
|
||||
_progressLayer = [CAShapeLayer layer];
|
||||
_progressLayer.fillColor = self.primaryColor.CGColor;
|
||||
[self.layer addSublayer:_progressLayer];
|
||||
|
||||
//Set up the icon layer
|
||||
_iconLayer = [CAShapeLayer layer];
|
||||
_iconLayer.fillColor = self.primaryColor.CGColor;
|
||||
_iconLayer.fillRule = kCAFillRuleNonZero;
|
||||
[self.layer addSublayer:_iconLayer];
|
||||
|
||||
//Set the label
|
||||
_percentageLabel = [[UILabel alloc] init];
|
||||
_percentageLabel.font = [UIFont systemFontOfSize:((self.bounds.size.width - _progressRingWidth) / 5)];
|
||||
_percentageLabel.textColor = self.primaryColor;
|
||||
_percentageLabel.textAlignment = NSTextAlignmentCenter;
|
||||
_percentageLabel.contentMode = UIViewContentModeCenter;
|
||||
_percentageLabel.frame = self.bounds;
|
||||
[self addSubview:_percentageLabel];
|
||||
}
|
||||
|
||||
#pragma mark Appearance
|
||||
|
||||
- (void)setPrimaryColor:(UIColor *)primaryColor
|
||||
{
|
||||
[super setPrimaryColor:primaryColor];
|
||||
_progressLayer.strokeColor = [[UIColor clearColor] CGColor];
|
||||
_progressLayer.fillColor = self.primaryColor.CGColor;
|
||||
_iconLayer.fillColor = self.primaryColor.CGColor;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setSecondaryColor:(UIColor *)secondaryColor
|
||||
{
|
||||
[super setSecondaryColor:secondaryColor];
|
||||
_backgroundLayer.strokeColor = self.secondaryColor.CGColor;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
|
||||
- (void)setProgressRingWidth:(CGFloat)progressRingWidth
|
||||
{
|
||||
_progressRingWidth = progressRingWidth;
|
||||
_progressLayer.lineWidth = _progressRingWidth;
|
||||
_backgroundLayer.lineWidth = _progressRingWidth;
|
||||
_progressRingWidthOverriden = YES;
|
||||
[self updateAngles];
|
||||
[self setNeedsDisplay];
|
||||
[self invalidateIntrinsicContentSize];
|
||||
}
|
||||
|
||||
- (void)setShowPercentage:(BOOL)showPercentage
|
||||
{
|
||||
_showPercentage = showPercentage;
|
||||
if (_showPercentage == YES) {
|
||||
if (_percentageLabel.superview == nil) {
|
||||
//Show the label if not already
|
||||
[self addSubview:_percentageLabel];
|
||||
[self setNeedsLayout];
|
||||
}
|
||||
} else {
|
||||
if (_percentageLabel.superview != nil) {
|
||||
//Hide the label if not already
|
||||
[_percentageLabel removeFromSuperview];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setSegmentBoundaryType:(M13ProgressViewSegmentedRingSegmentBoundaryType)segmentBoundaryType
|
||||
{
|
||||
_segmentBoundaryType = segmentBoundaryType;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setNumberOfSegments:(NSInteger)numberOfSegments
|
||||
{
|
||||
_numberOfSegments = numberOfSegments;
|
||||
if (!_segmentSeparationAngleOverriden) {
|
||||
_segmentSeparationAngle = M_PI / (2 * _numberOfSegments);
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setSegmentSeparationAngle:(CGFloat)segmentSeparationAngle
|
||||
{
|
||||
_segmentSeparationAngle = segmentSeparationAngle;
|
||||
_segmentSeparationAngleOverriden = YES;
|
||||
}
|
||||
|
||||
#pragma mark Actions
|
||||
|
||||
- (void)setProgress:(CGFloat)progress animated:(BOOL)animated
|
||||
{
|
||||
if (self.progress == progress) {
|
||||
return;
|
||||
}
|
||||
if (animated == NO) {
|
||||
if (_displayLink) {
|
||||
//Kill running animations
|
||||
[_displayLink invalidate];
|
||||
_displayLink = nil;
|
||||
}
|
||||
[super setProgress:progress animated:animated];
|
||||
[self setNeedsDisplay];
|
||||
} else {
|
||||
_animationStartTime = CACurrentMediaTime();
|
||||
_animationFromValue = self.progress;
|
||||
_animationToValue = progress;
|
||||
if (!_displayLink) {
|
||||
//Create and setup the display link
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(animateProgress:)];
|
||||
[self.displayLink addToRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
|
||||
} /*else {
|
||||
//Reuse the current display link
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
- (void)animateProgress:(CADisplayLink *)displayLink
|
||||
{
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
CGFloat dt = (displayLink.timestamp - _animationStartTime) / self.animationDuration;
|
||||
if (dt >= 1.0) {
|
||||
//Order is important! Otherwise concurrency will cause errors, because setProgress: will detect an animation in progress and try to stop it by itself. Once over one, set to actual progress amount. Animation is over.
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = nil;
|
||||
[super setProgress:_animationToValue animated:NO];
|
||||
[self setNeedsDisplay];
|
||||
return;
|
||||
}
|
||||
|
||||
//Set progress
|
||||
[super setProgress:_animationFromValue + dt * (_animationToValue - _animationFromValue) animated:YES];
|
||||
[self setNeedsDisplay];
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated
|
||||
{
|
||||
if (action == M13ProgressViewActionNone && _currentAction != M13ProgressViewActionNone) {
|
||||
//Animate
|
||||
[CATransaction begin];
|
||||
[_iconLayer addAnimation:[self hideAnimation] forKey:kM13ProgressViewSegmentedRingHideKey];
|
||||
[_percentageLabel.layer addAnimation:[self showAnimation] forKey:kM13ProgressViewSegmentedRingShowKey];
|
||||
[CATransaction commit];
|
||||
_currentAction = action;
|
||||
} else if (action == M13ProgressViewActionSuccess && _currentAction != M13ProgressViewActionSuccess) {
|
||||
if (_currentAction == M13ProgressViewActionNone) {
|
||||
_currentAction = action;
|
||||
//Just show the icon layer
|
||||
[self drawIcon];
|
||||
//Animate
|
||||
[CATransaction begin];
|
||||
[_iconLayer addAnimation:[self showAnimation] forKey:kM13ProgressViewSegmentedRingShowKey];
|
||||
[_percentageLabel.layer addAnimation:[self hideAnimation] forKey:kM13ProgressViewSegmentedRingHideKey];
|
||||
[CATransaction commit];
|
||||
} else if (_currentAction == M13ProgressViewActionFailure) {
|
||||
//Hide the icon layer before showing
|
||||
[CATransaction begin];
|
||||
[_iconLayer addAnimation:[self hideAnimation] forKey:kM13ProgressViewSegmentedRingHideKey];
|
||||
[CATransaction setCompletionBlock:^{
|
||||
_currentAction = action;
|
||||
[self drawIcon];
|
||||
[_iconLayer addAnimation:[self showAnimation] forKey:kM13ProgressViewSegmentedRingShowKey];
|
||||
}];
|
||||
[CATransaction commit];
|
||||
}
|
||||
} else if (action == M13ProgressViewActionFailure && _currentAction != M13ProgressViewActionFailure) {
|
||||
if (_currentAction == M13ProgressViewActionNone) {
|
||||
//Just show the icon layer
|
||||
_currentAction = action;
|
||||
[self drawIcon];
|
||||
[CATransaction begin];
|
||||
[_iconLayer addAnimation:[self showAnimation] forKey:kM13ProgressViewSegmentedRingShowKey];
|
||||
[_percentageLabel.layer addAnimation:[self hideAnimation] forKey:kM13ProgressViewSegmentedRingHideKey];
|
||||
[CATransaction commit];
|
||||
} else if (_currentAction == M13ProgressViewActionSuccess) {
|
||||
//Hide the icon layer before showing
|
||||
[CATransaction begin];
|
||||
[_iconLayer addAnimation:[self hideAnimation] forKey:kM13ProgressViewSegmentedRingHideKey];
|
||||
[CATransaction setCompletionBlock:^{
|
||||
_currentAction = action;
|
||||
[self drawIcon];
|
||||
[_iconLayer addAnimation:[self showAnimation] forKey:kM13ProgressViewSegmentedRingShowKey];
|
||||
}];
|
||||
[CATransaction commit];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setIndeterminate:(BOOL)indeterminate
|
||||
{
|
||||
[super setIndeterminate:indeterminate];
|
||||
if (self.indeterminate == YES) {
|
||||
|
||||
//Create the rotation animation
|
||||
CABasicAnimation *rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
|
||||
rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 2.0];
|
||||
rotationAnimation.duration = 5 * self.animationDuration;
|
||||
rotationAnimation.cumulative = YES;
|
||||
rotationAnimation.repeatCount = HUGE_VALF;
|
||||
|
||||
CABasicAnimation *rotationAnimationProgress = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
|
||||
rotationAnimationProgress.toValue = [NSNumber numberWithFloat: M_PI * 2.0];
|
||||
rotationAnimationProgress.duration = 5 * self.animationDuration;
|
||||
rotationAnimationProgress.cumulative = YES;
|
||||
rotationAnimationProgress.repeatCount = HUGE_VALF;
|
||||
|
||||
//Set the animations
|
||||
[_backgroundLayer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
|
||||
[_progressLayer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
|
||||
[CATransaction begin];
|
||||
[_percentageLabel.layer addAnimation:[self hideAnimation] forKey:kM13ProgressViewSegmentedRingHideKey];
|
||||
[CATransaction commit];
|
||||
} else {
|
||||
//Animate
|
||||
[CATransaction begin];
|
||||
[_percentageLabel.layer addAnimation:[self showAnimation] forKey:kM13ProgressViewSegmentedRingShowKey];
|
||||
[CATransaction setCompletionBlock:^{
|
||||
//Remove the rotation animation and reset the background
|
||||
[_backgroundLayer removeAnimationForKey:@"rotationAnimation"];
|
||||
[_progressLayer removeAnimationForKey:@"rotationAnimation"];
|
||||
[self drawBackground];
|
||||
[self drawProgress];
|
||||
}];
|
||||
[CATransaction commit];
|
||||
}
|
||||
}
|
||||
|
||||
- (CABasicAnimation *)showAnimation
|
||||
{
|
||||
//Show the progress layer and percentage
|
||||
CABasicAnimation *showAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
|
||||
showAnimation.fromValue = [NSNumber numberWithFloat:0.0];
|
||||
showAnimation.toValue = [NSNumber numberWithFloat:1.0];
|
||||
showAnimation.duration = self.animationDuration;
|
||||
showAnimation.repeatCount = 1.0;
|
||||
//Prevent the animation from resetting
|
||||
showAnimation.fillMode = kCAFillModeForwards;
|
||||
showAnimation.removedOnCompletion = NO;
|
||||
return showAnimation;
|
||||
}
|
||||
|
||||
- (CABasicAnimation *)hideAnimation
|
||||
{
|
||||
//Hide the progress layer and percentage
|
||||
CABasicAnimation *hideAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
|
||||
hideAnimation.fromValue = [NSNumber numberWithFloat:1.0];
|
||||
hideAnimation.toValue = [NSNumber numberWithFloat:0.0];
|
||||
hideAnimation.duration = self.animationDuration;
|
||||
hideAnimation.repeatCount = 1.0;
|
||||
//Prevent the animation from resetting
|
||||
hideAnimation.fillMode = kCAFillModeForwards;
|
||||
hideAnimation.removedOnCompletion = NO;
|
||||
return hideAnimation;
|
||||
}
|
||||
|
||||
#pragma mark Layout
|
||||
|
||||
- (void)layoutSubviews
|
||||
{
|
||||
//Update frames of layers
|
||||
_backgroundLayer.frame = self.bounds;
|
||||
_progressLayer.frame = self.bounds;
|
||||
_iconLayer.frame = self.bounds;
|
||||
|
||||
//Update font size
|
||||
_percentageLabel.font = [UIFont systemFontOfSize:((self.bounds.size.width - _progressRingWidth) / 5)];
|
||||
|
||||
//Update line widths if not overriden
|
||||
if (!_progressRingWidthOverriden) {
|
||||
_progressRingWidth = fmaxf(self.frame.size.width * .25, 1.0);
|
||||
}
|
||||
|
||||
[self updateAngles];
|
||||
|
||||
//Redraw
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (CGSize)intrinsicContentSize
|
||||
{
|
||||
//This might need a little more fine tuning.
|
||||
CGFloat base = _progressRingWidth * 2;
|
||||
|
||||
return CGSizeMake(base, base);
|
||||
}
|
||||
|
||||
- (void)setFrame:(CGRect)frame
|
||||
{
|
||||
//Keep the progress view square.
|
||||
if (frame.size.width != frame.size.height) {
|
||||
frame.size.height = frame.size.width;
|
||||
}
|
||||
|
||||
[self updateAngles];
|
||||
|
||||
[super setFrame:frame];
|
||||
}
|
||||
|
||||
- (void)updateAngles
|
||||
{
|
||||
//Calculate the outer ring angle for the progress segment.*/
|
||||
outerRingAngle = ((2.0 * M_PI) / (float)_numberOfSegments) - _segmentSeparationAngle;
|
||||
//Calculate the angle gap for the inner ring
|
||||
_segmentSeparationInnerAngle = 2.0 * asinf(((self.bounds.size.width / 2.0) * sinf(_segmentSeparationAngle / 2.0)) / ((self.bounds.size.width / 2.0) - _progressRingWidth));
|
||||
//Calculate the inner ring angle for the progress segment.*/
|
||||
innerRingAngle = ((2.0 * M_PI) / (float)_numberOfSegments) - _segmentSeparationInnerAngle;
|
||||
}
|
||||
|
||||
- (NSInteger)numberOfFullSegments
|
||||
{
|
||||
return (NSInteger)floorf(self.progress * _numberOfSegments);
|
||||
}
|
||||
|
||||
#pragma mark Drawing
|
||||
|
||||
- (void)drawRect:(CGRect)rect
|
||||
{
|
||||
[super drawRect:rect];
|
||||
|
||||
//Draw the background
|
||||
[self drawBackground];
|
||||
|
||||
//Draw Icons
|
||||
[self drawIcon];
|
||||
|
||||
//Draw Progress
|
||||
[self drawProgress];
|
||||
}
|
||||
|
||||
- (void)drawSuccess
|
||||
{
|
||||
//Draw relative to a base size and percentage, that way the check can be drawn for any size.*/
|
||||
CGFloat radius = (self.frame.size.width / 2.0);
|
||||
CGFloat size = (radius - _progressRingWidth) * .3;
|
||||
|
||||
//Create the path
|
||||
UIBezierPath *path = [UIBezierPath bezierPath];
|
||||
[path moveToPoint:CGPointMake(0, 0)];
|
||||
[path addLineToPoint:CGPointMake(0, size * 2)];
|
||||
[path addLineToPoint:CGPointMake(size * 3, size * 2)];
|
||||
[path addLineToPoint:CGPointMake(size * 3, size)];
|
||||
[path addLineToPoint:CGPointMake(size, size)];
|
||||
[path addLineToPoint:CGPointMake(size, 0)];
|
||||
[path closePath];
|
||||
|
||||
//Rotate it through -45 degrees...
|
||||
[path applyTransform:CGAffineTransformMakeRotation(-M_PI_4)];
|
||||
|
||||
//Center it
|
||||
[path applyTransform:CGAffineTransformMakeTranslation((radius + _progressRingWidth ) * .50 , 1.02 * radius)];
|
||||
|
||||
//Set path
|
||||
[_iconLayer setPath:path.CGPath];
|
||||
[_iconLayer setFillColor:self.primaryColor.CGColor];
|
||||
}
|
||||
|
||||
- (void)drawFailure
|
||||
{
|
||||
//Calculate the size of the X
|
||||
CGFloat radius = (self.frame.size.width / 2.0);
|
||||
CGFloat size = (radius - _progressRingWidth) * .3;
|
||||
|
||||
//Create the path for the X
|
||||
UIBezierPath *xPath = [UIBezierPath bezierPath];
|
||||
[xPath moveToPoint:CGPointMake(size, 0)];
|
||||
[xPath addLineToPoint:CGPointMake(2 * size, 0)];
|
||||
[xPath addLineToPoint:CGPointMake(2 * size, size)];
|
||||
[xPath addLineToPoint:CGPointMake(3 * size, size)];
|
||||
[xPath addLineToPoint:CGPointMake(3 * size, 2 * size)];
|
||||
[xPath addLineToPoint:CGPointMake(2 * size, 2 * size)];
|
||||
[xPath addLineToPoint:CGPointMake(2 * size, 3 * size)];
|
||||
[xPath addLineToPoint:CGPointMake(size, 3 * size)];
|
||||
[xPath addLineToPoint:CGPointMake(size, 2 * size)];
|
||||
[xPath addLineToPoint:CGPointMake(0, 2 * size)];
|
||||
[xPath addLineToPoint:CGPointMake(0, size)];
|
||||
[xPath addLineToPoint:CGPointMake(size, size)];
|
||||
[xPath closePath];
|
||||
|
||||
|
||||
//Center it
|
||||
[xPath applyTransform:CGAffineTransformMakeTranslation(radius - (1.5 * size), radius - (1.5 * size))];
|
||||
|
||||
//Rotate path
|
||||
[xPath applyTransform:CGAffineTransformMake(cos(M_PI_4),sin(M_PI_4),-sin(M_PI_4),cos(M_PI_4),radius * (1 - cos(M_PI_4)+ sin(M_PI_4)),radius * (1 - sin(M_PI_4)- cos(M_PI_4)))];
|
||||
|
||||
//Set path and fill color
|
||||
[_iconLayer setPath:xPath.CGPath];
|
||||
[_iconLayer setFillColor:self.primaryColor.CGColor];
|
||||
}
|
||||
|
||||
- (void)drawBackground
|
||||
{
|
||||
//Create parameters to draw background
|
||||
//The background segments are drawn counterclockwise, start with the outer ring, add an arc counterclockwise. Then add the coresponding arc for the inner ring clockwise. Then close the path. The line connecting the two arcs is not needed. From tests it seems to be created automatically.
|
||||
CGFloat outerStartAngle = - M_PI_2;
|
||||
//Skip half of a separation angle, since the first separation will be centered upward.
|
||||
outerStartAngle -= (_segmentSeparationAngle / 2.0);
|
||||
//Calculate the inner start angle position
|
||||
CGFloat innerStartAngle = - M_PI_2;
|
||||
innerStartAngle -= (_segmentSeparationInnerAngle / 2.0) + innerRingAngle;
|
||||
//Create the path ref that all the paths will be appended
|
||||
CGMutablePathRef pathRef = CGPathCreateMutable();
|
||||
|
||||
//Create each segment
|
||||
CGPoint center = CGPointMake(self.bounds.size.width / 2.0, self.bounds.size.width / 2.0);
|
||||
for (int i = 0; i < _numberOfSegments - [self numberOfFullSegments]; i++) {
|
||||
//Create the outer ring segment
|
||||
UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:center radius:(self.bounds.size.width / 2.0) startAngle:outerStartAngle endAngle:(outerStartAngle - outerRingAngle) clockwise:NO];
|
||||
//Create the inner ring segment
|
||||
if (_segmentBoundaryType == M13ProgressViewSegmentedRingSegmentBoundaryTypeWedge) {
|
||||
[path addArcWithCenter:center radius:(self.bounds.size.width / 2.0) - _progressRingWidth startAngle:(outerStartAngle - outerRingAngle) endAngle:outerStartAngle clockwise:YES];
|
||||
} else if (_segmentBoundaryType == M13ProgressViewSegmentedRingSegmentBoundaryTypeRectangle) {
|
||||
[path addArcWithCenter:center radius:(self.bounds.size.width / 2.0) - _progressRingWidth startAngle:innerStartAngle endAngle:innerStartAngle + innerRingAngle clockwise:YES];
|
||||
}
|
||||
|
||||
[path closePath];
|
||||
//Add the segment to the path
|
||||
CGPathAddPath(pathRef, NULL, path.CGPath);
|
||||
|
||||
//Setup for the next segment
|
||||
outerStartAngle -= (outerRingAngle + _segmentSeparationAngle);
|
||||
innerStartAngle -= (innerRingAngle + _segmentSeparationInnerAngle);
|
||||
}
|
||||
|
||||
//Set the path
|
||||
_backgroundLayer.path = pathRef;
|
||||
|
||||
CGPathRelease(pathRef);
|
||||
}
|
||||
|
||||
- (void)drawProgress
|
||||
{
|
||||
//Create parameters to draw background
|
||||
//The progress segments are drawn clockwise, start with the outer ring, add an arc clockwise. Then add the coresponding arc for the inner ring counterclockwise. Then close the path. The line connecting the two arcs is not needed. From tests it seems to be created automatically.
|
||||
CGFloat outerStartAngle = - M_PI_2;
|
||||
//Skip half of a separation angle, since the first separation will be centered upward.
|
||||
outerStartAngle += (_segmentSeparationAngle / 2.0);
|
||||
//Calculate the inner start angle position
|
||||
CGFloat innerStartAngle = - M_PI_2;
|
||||
innerStartAngle += (_segmentSeparationInnerAngle / 2.0) + innerRingAngle;
|
||||
//Create the path ref that all the paths will be appended
|
||||
CGMutablePathRef pathRef = CGPathCreateMutable();
|
||||
|
||||
//Create each segment
|
||||
CGPoint center = CGPointMake(self.bounds.size.width / 2.0, self.bounds.size.width / 2.0);
|
||||
for (int i = 0; i < [self numberOfFullSegments]; i++) {
|
||||
//Create the outer ring segment
|
||||
UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:center radius:(self.bounds.size.width / 2.0) startAngle:outerStartAngle endAngle:(outerStartAngle + outerRingAngle) clockwise:YES];
|
||||
//Create the inner ring segment
|
||||
if (_segmentBoundaryType == M13ProgressViewSegmentedRingSegmentBoundaryTypeWedge) {
|
||||
[path addArcWithCenter:center radius:(self.bounds.size.width / 2.0) - _progressRingWidth startAngle:(outerStartAngle + outerRingAngle) endAngle:outerStartAngle clockwise:NO];
|
||||
} else if (_segmentBoundaryType == M13ProgressViewSegmentedRingSegmentBoundaryTypeRectangle) {
|
||||
[path addArcWithCenter:center radius:(self.bounds.size.width / 2.0) - _progressRingWidth startAngle:innerStartAngle endAngle:innerStartAngle - innerRingAngle clockwise:NO];
|
||||
}
|
||||
|
||||
[path closePath];
|
||||
//Add the segment to the path
|
||||
CGPathAddPath(pathRef, NULL, path.CGPath);
|
||||
|
||||
//Setup for the next segment
|
||||
outerStartAngle += (outerRingAngle + _segmentSeparationAngle);
|
||||
innerStartAngle += (innerRingAngle + _segmentSeparationInnerAngle);
|
||||
}
|
||||
|
||||
//Set the path
|
||||
_progressLayer.path = pathRef;
|
||||
|
||||
CGPathRelease(pathRef);
|
||||
|
||||
//Update label
|
||||
_percentageLabel.text = [_percentageFormatter stringFromNumber:[NSNumber numberWithFloat:self.progress]];
|
||||
}
|
||||
|
||||
- (void)drawIcon
|
||||
{
|
||||
if (_currentAction == M13ProgressViewActionSuccess) {
|
||||
[self drawSuccess];
|
||||
} else if (_currentAction == M13ProgressViewActionFailure) {
|
||||
[self drawFailure];
|
||||
} else if (_currentAction == M13ProgressViewActionNone) {
|
||||
//Clear layer
|
||||
_iconLayer.path = nil;
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,41 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewStripedBar.h
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import "M13ProgressView.h"
|
||||
|
||||
typedef enum {
|
||||
M13ProgressViewStripedBarCornerTypeSquare,
|
||||
M13ProgressViewStripedBarCornerTypeRounded,
|
||||
M13ProgressViewStripedBarCornerTypeCircle
|
||||
} M13ProgressViewStripedBarCornerType;
|
||||
|
||||
/**A progress bar that is striped, and can animate the stripes if desired.*/
|
||||
@interface M13ProgressViewStripedBar : M13ProgressView
|
||||
|
||||
/**@name Appearance*/
|
||||
/**The type of corner to display on the bar.*/
|
||||
@property (nonatomic, assign) M13ProgressViewStripedBarCornerType cornerType;
|
||||
/**The radius of the corner if the corner type is set to rounded rect.*/
|
||||
@property (nonatomic, assign) CGFloat cornerRadius;
|
||||
/**The width of the stripes if shown.*/
|
||||
@property (nonatomic, assign) CGFloat stripeWidth;
|
||||
/**Wether or not the stripes are animated.*/
|
||||
@property (nonatomic, assign) BOOL animateStripes;
|
||||
/**Wether or not to show the stripes.*/
|
||||
@property (nonatomic, assign) BOOL showStripes;
|
||||
/**The color of the stripes.*/
|
||||
@property (nonatomic, retain) UIColor *stripeColor;
|
||||
/**The width of the border.*/
|
||||
@property (nonatomic, assign) CGFloat borderWidth;
|
||||
|
||||
@end
|
||||
@@ -1,418 +0,0 @@
|
||||
//
|
||||
// M13ProgressViewStripedBar.m
|
||||
// M13ProgressView
|
||||
//
|
||||
/*Copyright (c) 2013 Brandon McQuilkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import "M13ProgressViewStripedBar.h"
|
||||
|
||||
@interface M13ProgressViewStripedBar ()
|
||||
/**The start progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationFromValue;
|
||||
/**The end progress for the progress animation.*/
|
||||
@property (nonatomic, assign) CGFloat animationToValue;
|
||||
/**The start time interval for the animaiton.*/
|
||||
@property (nonatomic, assign) CFTimeInterval animationStartTime;
|
||||
/**Link to the display to keep animations in sync.*/
|
||||
@property (nonatomic, strong) CADisplayLink *displayLink;
|
||||
/**Allow us to write to the progress.*/
|
||||
@property (nonatomic, readwrite) CGFloat progress;
|
||||
/**The layer that contains the progress layer. That also masks the progress layer.*/
|
||||
@property (nonatomic, retain) CALayer *progressSuperLayer;
|
||||
/**The layer that displays progress in the progress bar.*/
|
||||
@property (nonatomic, retain) CALayer *progressLayer;
|
||||
/**The layer that masks the stripes of the progress layer.*/
|
||||
@property (nonatomic, retain) CAShapeLayer *progressMaskLayer;
|
||||
/**The mask layer for the progress layer.*/
|
||||
@property (nonatomic, retain) CAShapeLayer *maskLayer;
|
||||
/**The background layer that displays the border.*/
|
||||
@property (nonatomic, retain) CAShapeLayer *backgroundLayer;
|
||||
/**The layer that is used to animate indeterminate progress.*/
|
||||
@property (nonatomic, retain) CALayer *indeterminateLayer;
|
||||
/**The action currently being performed.*/
|
||||
@property (nonatomic, assign) M13ProgressViewAction currentAction;
|
||||
/**The stripes layer.*/
|
||||
@property (nonatomic, retain) CALayer *stripesLayer;
|
||||
@end
|
||||
|
||||
@implementation M13ProgressViewStripedBar
|
||||
{
|
||||
UIColor *_currentColor;
|
||||
}
|
||||
|
||||
@dynamic progress;
|
||||
|
||||
#pragma mark Initalization and setup
|
||||
|
||||
- (id)init
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(NSCoder *)aDecoder
|
||||
{
|
||||
self = [super initWithCoder:aDecoder];
|
||||
if (self) {
|
||||
[self setup];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)setup
|
||||
{
|
||||
//Set own background color
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
|
||||
//Set defauts
|
||||
self.animationDuration = .3;
|
||||
_cornerType = M13ProgressViewStripedBarCornerTypeSquare;
|
||||
_cornerRadius = 3.0;
|
||||
_stripeWidth = 7.0;
|
||||
_borderWidth = 1.0;
|
||||
_showStripes = YES;
|
||||
|
||||
//Set default colors
|
||||
self.primaryColor = [UIColor colorWithRed:0 green:122/255.0 blue:1.0 alpha:1.0];
|
||||
self.secondaryColor = [UIColor colorWithRed:181/255.0 green:182/255.0 blue:183/255.0 alpha:1.0];
|
||||
self.stripeColor = [UIColor whiteColor];
|
||||
_currentColor = self.primaryColor;
|
||||
|
||||
//BackgroundLayer
|
||||
_backgroundLayer = [CAShapeLayer layer];
|
||||
_backgroundLayer.strokeColor = self.secondaryColor.CGColor;
|
||||
_backgroundLayer.fillColor = nil;
|
||||
_backgroundLayer.lineWidth = _borderWidth;
|
||||
[self.layer addSublayer:_backgroundLayer];
|
||||
|
||||
//Main mask layer
|
||||
_progressSuperLayer = [CALayer layer];
|
||||
_maskLayer = [CAShapeLayer layer];
|
||||
_maskLayer.fillColor = [UIColor blackColor].CGColor;
|
||||
_maskLayer.backgroundColor = [UIColor clearColor].CGColor;
|
||||
_progressSuperLayer.mask = _maskLayer;
|
||||
[self.layer addSublayer:_progressSuperLayer];
|
||||
|
||||
//ProgressLayer
|
||||
_progressLayer = [CALayer layer];
|
||||
_progressMaskLayer = [CAShapeLayer layer];
|
||||
_progressMaskLayer.fillColor = [UIColor whiteColor].CGColor;
|
||||
_progressMaskLayer.backgroundColor = [UIColor clearColor].CGColor;
|
||||
_progressLayer.mask = _progressMaskLayer;
|
||||
[_progressSuperLayer addSublayer:_progressLayer];
|
||||
_stripesLayer = [CALayer layer];
|
||||
[_progressLayer addSublayer:_stripesLayer];
|
||||
|
||||
//Layout
|
||||
[self layoutSubviews];
|
||||
|
||||
//Start stripes animation
|
||||
[self setAnimateStripes:YES];
|
||||
}
|
||||
|
||||
#pragma mark Appearance
|
||||
|
||||
- (void)setPrimaryColor:(UIColor *)primaryColor
|
||||
{
|
||||
[super setPrimaryColor:primaryColor];
|
||||
if (_currentAction == M13ProgressViewActionNone) {
|
||||
_currentColor = self.primaryColor;
|
||||
}
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setSecondaryColor:(UIColor *)secondaryColor
|
||||
{
|
||||
[super setSecondaryColor:secondaryColor];
|
||||
_backgroundLayer.strokeColor = self.secondaryColor.CGColor;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setStripeColor:(UIColor *)stripeColor
|
||||
{
|
||||
_stripeColor = stripeColor;
|
||||
}
|
||||
|
||||
- (void)setCornerType:(M13ProgressViewStripedBarCornerType)cornerType
|
||||
{
|
||||
_cornerType = cornerType;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setCornerRadius:(CGFloat)cornerRadius
|
||||
{
|
||||
_cornerRadius = cornerRadius;
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setStripeWidth:(CGFloat)stripeWidth
|
||||
{
|
||||
_stripeWidth = stripeWidth;
|
||||
[self invalidateIntrinsicContentSize];
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setBorderWidth:(CGFloat)borderWidth
|
||||
{
|
||||
_borderWidth = borderWidth;
|
||||
[self invalidateIntrinsicContentSize];
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)setShowStripes:(BOOL)showStripes
|
||||
{
|
||||
_showStripes = showStripes;
|
||||
[self drawStripes];
|
||||
}
|
||||
|
||||
- (void)setAnimateStripes:(BOOL)animateStripes
|
||||
{
|
||||
_animateStripes = animateStripes;
|
||||
|
||||
//reset the animations
|
||||
[_stripesLayer removeAllAnimations];
|
||||
if (_animateStripes) {
|
||||
//Set the stripes frame
|
||||
_stripesLayer.frame = CGRectMake(0, 0, self.bounds.size.width + (4 * _stripeWidth), self.bounds.size.height);
|
||||
//Add the animation
|
||||
//Create the animation
|
||||
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];
|
||||
animation.duration = 2 * self.animationDuration;
|
||||
animation.repeatCount = HUGE_VALF;
|
||||
animation.removedOnCompletion = YES;
|
||||
animation.fromValue = [NSValue valueWithCGPoint:CGPointMake(- (2 *_stripeWidth) + (self.bounds.size.width / 2), self.bounds.size.height / 2.0)];
|
||||
animation.toValue = [NSValue valueWithCGPoint:CGPointMake(0 + (self.bounds.size.width / 2.0), self.bounds.size.height / 2.0)];
|
||||
[_stripesLayer addAnimation:animation forKey:@"position"];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark Actions
|
||||
|
||||
- (void)setProgress:(CGFloat)progress animated:(BOOL)animated
|
||||
{
|
||||
if (animated == NO) {
|
||||
if (_displayLink) {
|
||||
//Kill running animations
|
||||
[_displayLink invalidate];
|
||||
_displayLink = nil;
|
||||
}
|
||||
[super setProgress:progress animated:NO];
|
||||
[self setNeedsDisplay];
|
||||
} else {
|
||||
_animationStartTime = CACurrentMediaTime();
|
||||
_animationFromValue = self.progress;
|
||||
_animationToValue = progress;
|
||||
if (!_displayLink) {
|
||||
//Create and setup the display link
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(animateProgress:)];
|
||||
[self.displayLink addToRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
|
||||
} /*else {
|
||||
//Reuse the current display link
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
- (void)animateProgress:(CADisplayLink *)displayLink
|
||||
{
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
CGFloat dt = (displayLink.timestamp - _animationStartTime) / self.animationDuration;
|
||||
if (dt >= 1.0) {
|
||||
//Order is important! Otherwise concurrency will cause errors, because setProgress: will detect an animation in progress and try to stop it by itself. Once over one, set to actual progress amount. Animation is over.
|
||||
[self.displayLink invalidate];
|
||||
self.displayLink = nil;
|
||||
[super setProgress:_animationToValue animated:NO];
|
||||
[self setNeedsDisplay];
|
||||
return;
|
||||
}
|
||||
|
||||
//Set progress
|
||||
[super setProgress:_animationFromValue + dt * (_animationToValue - _animationFromValue) animated:YES];
|
||||
[self setNeedsDisplay];
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated
|
||||
{
|
||||
if (action == M13ProgressViewActionNone && _currentAction != M13ProgressViewActionNone) {
|
||||
_currentColor = self.primaryColor;
|
||||
} else if (action == M13ProgressViewActionSuccess && _currentAction != M13ProgressViewActionSuccess) {
|
||||
_currentColor = [UIColor colorWithRed:63.0f/255.0f green:226.0f/255.0f blue:80.0f/255.0f alpha:1];
|
||||
} else if (action == M13ProgressViewActionFailure && _currentAction != M13ProgressViewActionFailure) {
|
||||
_currentColor = [UIColor colorWithRed:249.0f/255.0f green:37.0f/255.0f blue:0 alpha:1];
|
||||
}
|
||||
_currentAction = action;
|
||||
[self drawStripes];
|
||||
}
|
||||
|
||||
- (void)setIndeterminate:(BOOL)indeterminate
|
||||
{
|
||||
[super setIndeterminate:indeterminate];
|
||||
[self drawProgress];
|
||||
}
|
||||
|
||||
#pragma mark Layout
|
||||
|
||||
- (void)layoutSubviews
|
||||
{
|
||||
//Set the proper location and size of the text.
|
||||
_backgroundLayer.frame = self.bounds;
|
||||
_progressSuperLayer.frame = self.bounds;
|
||||
_progressMaskLayer.frame = self.bounds;
|
||||
[self setAnimateStripes:YES];
|
||||
[self calculateMask];
|
||||
[self drawStripes];
|
||||
}
|
||||
|
||||
- (CGSize)intrinsicContentSize
|
||||
{
|
||||
//Border + border to progress bar margin.
|
||||
CGFloat base = (_borderWidth * 2) + (_borderWidth * 2) + 1;
|
||||
//Add some stripes so we can see them.
|
||||
CGFloat width = base + (2 * _stripeWidth);
|
||||
return CGSizeMake(width, base);
|
||||
}
|
||||
|
||||
#pragma mark Drawing
|
||||
|
||||
- (void)drawRect:(CGRect)rect
|
||||
{
|
||||
[self drawProgress];
|
||||
[self drawBackground];
|
||||
}
|
||||
|
||||
- (void)drawProgress
|
||||
{
|
||||
//Calculate the corner radius
|
||||
CGFloat cornerRadius = 0;
|
||||
if (_cornerType == M13ProgressViewStripedBarCornerTypeRounded) {
|
||||
cornerRadius = _cornerRadius;
|
||||
} else if (_cornerType == M13ProgressViewStripedBarCornerTypeCircle) {
|
||||
cornerRadius = self.bounds.size.height - (2 * _borderWidth);
|
||||
}
|
||||
|
||||
//Draw the path
|
||||
CGRect rect;
|
||||
if (!self.indeterminate) {
|
||||
rect = CGRectMake(_borderWidth * 2, _borderWidth * 2, (self.bounds.size.width - (4 * _borderWidth)) * self.progress, self.bounds.size.height - (4 * _borderWidth));
|
||||
} else {
|
||||
rect = CGRectMake(_borderWidth * 2, _borderWidth * 2, (self.bounds.size.width - (4 * _borderWidth)), self.bounds.size.height - (4 * _borderWidth));
|
||||
}
|
||||
|
||||
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
|
||||
[_progressMaskLayer setPath:path.CGPath];
|
||||
}
|
||||
|
||||
- (void)drawBackground
|
||||
{
|
||||
//Create the path to stroke
|
||||
//Calculate the corner radius
|
||||
CGFloat cornerRadius = 0;
|
||||
if (_cornerType == M13ProgressViewStripedBarCornerTypeRounded) {
|
||||
cornerRadius = _cornerRadius;
|
||||
} else if (_cornerType == M13ProgressViewStripedBarCornerTypeCircle) {
|
||||
cornerRadius = (self.bounds.size.height - _borderWidth) / 2.0;
|
||||
}
|
||||
|
||||
//Draw the path
|
||||
CGRect rect = CGRectMake(_borderWidth / 2.0, _borderWidth / 2.0, self.bounds.size.width - _borderWidth, self.bounds.size.height - _borderWidth);
|
||||
UIBezierPath *path;
|
||||
if (_cornerType == M13ProgressViewStripedBarCornerTypeSquare) {
|
||||
//Having a 0 corner radius does not display properly since the rect displays like it is not closed.
|
||||
path = [UIBezierPath bezierPathWithRect:rect];
|
||||
} else {
|
||||
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];;
|
||||
}
|
||||
_backgroundLayer.path = path.CGPath;
|
||||
}
|
||||
|
||||
- (void)drawStripes
|
||||
{
|
||||
if (!_showStripes && !self.indeterminate) {
|
||||
//Fill with a solid color
|
||||
_stripesLayer.backgroundColor = _currentColor.CGColor;
|
||||
} else {
|
||||
//Start the image context
|
||||
UIGraphicsBeginImageContextWithOptions(CGSizeMake(_stripeWidth * 4.0, _stripeWidth * 4.0), NO, [UIScreen mainScreen].scale);
|
||||
|
||||
//Fill the background
|
||||
[_currentColor setFill];
|
||||
UIBezierPath *fillPath = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, _stripeWidth * 4.0, _stripeWidth * 4.0)];
|
||||
[fillPath fill];
|
||||
|
||||
//Draw the stripes
|
||||
[_stripeColor setFill];
|
||||
for (int i = 0; i < 4; i++) {
|
||||
//Create the four inital points of the fill shape
|
||||
CGPoint bottomLeft = CGPointMake(-(_stripeWidth * 4.0), _stripeWidth * 4.0);
|
||||
CGPoint topLeft = CGPointMake(0, 0);
|
||||
CGPoint topRight = CGPointMake(_stripeWidth, 0);
|
||||
CGPoint bottomRight = CGPointMake(-(_stripeWidth * 4.0) + _stripeWidth, _stripeWidth * 4.0);
|
||||
//Shift all four points as needed to draw all four stripes
|
||||
bottomLeft.x += i * (2 * _stripeWidth);
|
||||
topLeft.x += i * (2 * _stripeWidth);
|
||||
topRight.x += i * (2 * _stripeWidth);
|
||||
bottomRight.x += i * (2 * _stripeWidth);
|
||||
//Create the fill path
|
||||
UIBezierPath *path = [UIBezierPath bezierPath];
|
||||
[path moveToPoint:bottomLeft];
|
||||
[path addLineToPoint:topLeft];
|
||||
[path addLineToPoint:topRight];
|
||||
[path addLineToPoint:bottomRight];
|
||||
[path closePath];
|
||||
[path fill];
|
||||
}
|
||||
|
||||
//Retreive the image
|
||||
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
|
||||
UIGraphicsEndImageContext();
|
||||
|
||||
//Set the background of the progress layer
|
||||
_stripesLayer.backgroundColor = [UIColor colorWithPatternImage:image].CGColor;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)calculateMask
|
||||
{
|
||||
//Calculate the corner radius
|
||||
CGFloat cornerRadius = 0;
|
||||
if (_cornerType == M13ProgressViewStripedBarCornerTypeRounded) {
|
||||
cornerRadius = _cornerRadius;
|
||||
} else if (_cornerType == M13ProgressViewStripedBarCornerTypeCircle) {
|
||||
cornerRadius = self.bounds.size.height - (2 * _borderWidth);
|
||||
}
|
||||
|
||||
//Draw the path
|
||||
CGRect rect = CGRectMake(_borderWidth * 2, _borderWidth * 2, self.bounds.size.width - (4 * _borderWidth), self.bounds.size.height - (4 * _borderWidth));
|
||||
|
||||
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
|
||||
|
||||
//Create the mask
|
||||
_maskLayer.path = path.CGPath;
|
||||
|
||||
//Set the frame
|
||||
_maskLayer.frame = self.bounds;
|
||||
_progressSuperLayer.frame = self.bounds;
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,4 +0,0 @@
|
||||
Documentation set was installed to Xcode!
|
||||
|
||||
Path: /Users/Brandon/Library/Developer/Shared/Documentation/DocSets/com.BrandonMcQuilkin.M13ProgressSuite.docset
|
||||
Time: 2014-05-12 13:29:03 +0000
|
||||
@@ -1,37 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.BrandonMcQuilkin.M13ProgressSuite</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>M13ProgressSuite Documentation</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
|
||||
|
||||
|
||||
<key>DocSetFallbackURL</key>
|
||||
<string>http://marxon13.com/Marxon13 Productions (Brandon McQuilkin)</string>
|
||||
<key>DocSetFeedName</key>
|
||||
<string>M13ProgressSuite Documentation</string>
|
||||
<key>DocSetFeedURL</key>
|
||||
<string>http://marxon13.com/Marxon13 Productions (Brandon McQuilkin)/Marxon13 Productions (Brandon McQuilkin).atom</string>
|
||||
<key>DocSetMinimumXcodeVersion</key>
|
||||
<string>3.0</string>
|
||||
<key>DocSetPlatformFamily</key>
|
||||
<string>iphoneos</string>
|
||||
<key>DashDocSetFamily</key>
|
||||
<string>appledoc</string>
|
||||
<key>DocSetPublisherIdentifier</key>
|
||||
<string>com.BrandonMcQuilkin.documentation</string>
|
||||
<key>DocSetPublisherName</key>
|
||||
<string>Marxon13 Productions (Brandon McQuilkin)</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Copyright © 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved.</string>
|
||||
</dict>
|
||||
</plist>
|
||||
-727
@@ -1,727 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="html/html; charset=utf-8" />
|
||||
<title>UINavigationController(M13ProgressViewBar) Category Reference</title>
|
||||
<meta id="xcode-display" name="xcode-display" content="render"/>
|
||||
<link rel="stylesheet" type="text/css" href="../css/styles.css" media="all" />
|
||||
<link rel="stylesheet" type="text/css" media="print" href="../css/stylesPrint.css" />
|
||||
<meta name="generator" content="appledoc 2.2 (build 961)" />
|
||||
</head>
|
||||
<body>
|
||||
<header id="top_header">
|
||||
<div id="library" class="hideInXcode">
|
||||
<h1><a id="libraryTitle" href="../index.html">M13ProgressSuite </a></h1>
|
||||
<a id="developerHome" href="../index.html">Marxon13 Productions (Brandon McQuilkin)</a>
|
||||
</div>
|
||||
|
||||
<div id="title" role="banner">
|
||||
<h1 class="hideInXcode">UINavigationController(M13ProgressViewBar) Category Reference</h1>
|
||||
</div>
|
||||
<ul id="headerButtons" role="toolbar">
|
||||
<li id="toc_button">
|
||||
<button aria-label="Show Table of Contents" role="checkbox" class="open" id="table_of_contents"><span class="disclosure"></span>Table of Contents</button>
|
||||
</li>
|
||||
<li id="jumpto_button" role="navigation">
|
||||
<select id="jumpTo">
|
||||
<option value="top">Jump To…</option>
|
||||
|
||||
<option value="overview">Overview</option>
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="tasks">Tasks</option>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="instance_methods">Instance Methods</option>
|
||||
|
||||
<option value="//api/name/cancelProgress"> - cancelProgress</option>
|
||||
|
||||
<option value="//api/name/finishProgress"> - finishProgress</option>
|
||||
|
||||
<option value="//api/name/isShowingProgressBar"> - isShowingProgressBar</option>
|
||||
|
||||
<option value="//api/name/setIndeterminate:"> - setIndeterminate:</option>
|
||||
|
||||
<option value="//api/name/setPrimaryColor:"> - setPrimaryColor:</option>
|
||||
|
||||
<option value="//api/name/setProgress:animated:"> - setProgress:animated:</option>
|
||||
|
||||
<option value="//api/name/setProgressTitle:"> - setProgressTitle:</option>
|
||||
|
||||
<option value="//api/name/setSecondaryColor:"> - setSecondaryColor:</option>
|
||||
|
||||
<option value="//api/name/showProgress"> - showProgress</option>
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
</li>
|
||||
</ul>
|
||||
</header>
|
||||
<nav id="tocContainer" class="isShowingTOC">
|
||||
<ul id="toc" role="tree">
|
||||
|
||||
<li role="treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#overview">Overview</a></span></li>
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" id="task_treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#tasks">Tasks</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#task_Actions">Actions</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#instance_methods">Instance Methods</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/cancelProgress">cancelProgress</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/finishProgress">finishProgress</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/isShowingProgressBar">isShowingProgressBar</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setIndeterminate:">setIndeterminate:</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setPrimaryColor:">setPrimaryColor:</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setProgress:animated:">setProgress:animated:</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setProgressTitle:">setProgressTitle:</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setSecondaryColor:">setSecondaryColor:</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/showProgress">showProgress</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<article>
|
||||
<div id="contents" class="isShowingTOC" role="main">
|
||||
<a title="UINavigationController(M13ProgressViewBar) Category Reference" name="top"></a>
|
||||
<div class="main-navigation navigation-top">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="header">
|
||||
<div class="section-header">
|
||||
<h1 class="title title-header">UINavigationController(M13ProgressViewBar) Category Reference</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div id="container">
|
||||
|
||||
<div class="section section-specification"><table cellspacing="0"><tbody>
|
||||
<tr>
|
||||
<td class="specification-title">Declared in</td>
|
||||
<td class="specification-value">UINavigationController+M13ProgressViewBar.h<br />UINavigationController+M13ProgressViewBar.m</td>
|
||||
</tr>
|
||||
</tbody></table></div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-overview">
|
||||
<a title="Overview" name="overview"></a>
|
||||
<h2 class="subtitle subtitle-overview">Overview</h2>
|
||||
<p>A UINavagationController category that adds a progress view to the UINavigationBar.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-tasks">
|
||||
<a title="Tasks" name="tasks"></a>
|
||||
<h2 class="subtitle subtitle-tasks">Tasks</h2>
|
||||
|
||||
|
||||
<a title="Actions" name="task_Actions"></a>
|
||||
|
||||
<h3 class="subsubtitle task-title">Actions</h3>
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/showProgress">– showProgress</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/setProgress:animated:">– setProgress:animated:</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/setProgressTitle:">– setProgressTitle:</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/setIndeterminate:">– setIndeterminate:</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/finishProgress">– finishProgress</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/cancelProgress">– cancelProgress</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/isShowingProgressBar">– isShowingProgressBar</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/setPrimaryColor:">– setPrimaryColor:</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/setSecondaryColor:">– setSecondaryColor:</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Instance Methods" name="instance_methods"></a>
|
||||
<h2 class="subtitle subtitle-methods">Instance Methods</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/cancelProgress" title="cancelProgress"></a>
|
||||
<h3 class="subsubtitle method-title">cancelProgress</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Remove the progress bar from the display.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)cancelProgress</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">UINavigationController+M13ProgressViewBar.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/finishProgress" title="finishProgress"></a>
|
||||
<h3 class="subsubtitle method-title">finishProgress</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Fill the progress bar completely and remove it from display.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)finishProgress</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">UINavigationController+M13ProgressViewBar.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/isShowingProgressBar" title="isShowingProgressBar"></a>
|
||||
<h3 class="subsubtitle method-title">isShowingProgressBar</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Wether or not the progress bar is showing.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (BOOL)isShowingProgressBar</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">UINavigationController+M13ProgressViewBar.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/setIndeterminate:" title="setIndeterminate:"></a>
|
||||
<h3 class="subsubtitle method-title">setIndeterminate:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Set wether or not to show indeterminate.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)setIndeterminate:(BOOL)<em>indeterminate</em></code></div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection arguments-section parameters">
|
||||
<h4 class="method-subtitle parameter-title">Parameters</h4>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>indeterminate</em></dt>
|
||||
<dd><p>wether or not the progress bar is indeterminate.</p></dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">UINavigationController+M13ProgressViewBar.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/setPrimaryColor:" title="setPrimaryColor:"></a>
|
||||
<h3 class="subsubtitle method-title">setPrimaryColor:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The primary color of the progress bar if you do not want it to be the same as the UINavigationBar’s tint color. If set to nil, the UINavigationBar’s tint color will be used.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)setPrimaryColor:(UIColor *)<em>primaryColor</em></code></div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection arguments-section parameters">
|
||||
<h4 class="method-subtitle parameter-title">Parameters</h4>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>primaryColor</em></dt>
|
||||
<dd><p>The color to set.</p></dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">UINavigationController+M13ProgressViewBar.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/setProgress:animated:" title="setProgress:animated:"></a>
|
||||
<h3 class="subsubtitle method-title">setProgress:animated:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Set the progress to display on the progress bar.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)setProgress:(CGFloat)<em>progress</em> animated:(BOOL)<em>animated</em></code></div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection arguments-section parameters">
|
||||
<h4 class="method-subtitle parameter-title">Parameters</h4>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>progress</em></dt>
|
||||
<dd><p>The progress to display as a percentage from 0-1.</p></dd>
|
||||
</dl>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>animated</em></dt>
|
||||
<dd><p>Wether or not to animate the change.</p></dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">UINavigationController+M13ProgressViewBar.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/setProgressTitle:" title="setProgressTitle:"></a>
|
||||
<h3 class="subsubtitle method-title">setProgressTitle:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Set the string to replace the UINavigationBar’s title with while showing progress. Send nil to reset the title.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)setProgressTitle:(NSString *)<em>title</em></code></div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection arguments-section parameters">
|
||||
<h4 class="method-subtitle parameter-title">Parameters</h4>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>title</em></dt>
|
||||
<dd><p>The string to replace the UINavigationBar’s title while showing progress.</p></dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">UINavigationController+M13ProgressViewBar.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/setSecondaryColor:" title="setSecondaryColor:"></a>
|
||||
<h3 class="subsubtitle method-title">setSecondaryColor:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The secondary color of the progress bar, if nil, the secondary color will be the barTintColor.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)setSecondaryColor:(UIColor *)<em>secondaryColor</em></code></div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection arguments-section parameters">
|
||||
<h4 class="method-subtitle parameter-title">Parameters</h4>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>secondaryColor</em></dt>
|
||||
<dd><p>The color to set.</p></dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">UINavigationController+M13ProgressViewBar.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/showProgress" title="showProgress"></a>
|
||||
<h3 class="subsubtitle method-title">showProgress</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Show the progress bar.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)showProgress</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">UINavigationController+M13ProgressViewBar.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="main-navigation navigation-bottom">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<hr />
|
||||
<div class="footer-copyright">
|
||||
<p><span class="copyright">© 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-05-12)</span><br />
|
||||
|
||||
<span class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2 (build 961)</a>.</span></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
<script type="text/javascript">
|
||||
function jumpToChange()
|
||||
{
|
||||
window.location.hash = this.options[this.selectedIndex].value;
|
||||
}
|
||||
|
||||
function toggleTOC()
|
||||
{
|
||||
var contents = document.getElementById('contents');
|
||||
var tocContainer = document.getElementById('tocContainer');
|
||||
|
||||
if (this.getAttribute('class') == 'open')
|
||||
{
|
||||
this.setAttribute('class', '');
|
||||
contents.setAttribute('class', '');
|
||||
tocContainer.setAttribute('class', '');
|
||||
|
||||
window.name = "hideTOC";
|
||||
}
|
||||
else
|
||||
{
|
||||
this.setAttribute('class', 'open');
|
||||
contents.setAttribute('class', 'isShowingTOC');
|
||||
tocContainer.setAttribute('class', 'isShowingTOC');
|
||||
|
||||
window.name = "";
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function toggleTOCEntryChildren(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
var currentClass = this.getAttribute('class');
|
||||
if (currentClass == 'children') {
|
||||
this.setAttribute('class', 'children open');
|
||||
}
|
||||
else if (currentClass == 'children open') {
|
||||
this.setAttribute('class', 'children');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function tocEntryClick(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
return true;
|
||||
}
|
||||
|
||||
function init()
|
||||
{
|
||||
var selectElement = document.getElementById('jumpTo');
|
||||
selectElement.addEventListener('change', jumpToChange, false);
|
||||
|
||||
var tocButton = document.getElementById('table_of_contents');
|
||||
tocButton.addEventListener('click', toggleTOC, false);
|
||||
|
||||
var taskTreeItem = document.getElementById('task_treeitem');
|
||||
if (taskTreeItem.getElementsByTagName('li').length > 0)
|
||||
{
|
||||
taskTreeItem.setAttribute('class', 'children');
|
||||
taskTreeItem.firstChild.setAttribute('class', 'disclosure');
|
||||
}
|
||||
|
||||
var tocList = document.getElementById('toc');
|
||||
|
||||
var tocEntries = tocList.getElementsByTagName('li');
|
||||
for (var i = 0; i < tocEntries.length; i++) {
|
||||
tocEntries[i].addEventListener('click', toggleTOCEntryChildren, false);
|
||||
}
|
||||
|
||||
var tocLinks = tocList.getElementsByTagName('a');
|
||||
for (var i = 0; i < tocLinks.length; i++) {
|
||||
tocLinks[i].addEventListener('click', tocEntryClick, false);
|
||||
}
|
||||
|
||||
if (window.name == "hideTOC") {
|
||||
toggleTOC.call(tocButton);
|
||||
}
|
||||
}
|
||||
|
||||
window.onload = init;
|
||||
|
||||
// If showing in Xcode, hide the TOC and Header
|
||||
if (navigator.userAgent.match(/xcode/i)) {
|
||||
document.getElementById("contents").className = "hideInXcode"
|
||||
document.getElementById("tocContainer").className = "hideInXcode"
|
||||
document.getElementById("top_header").className = "hideInXcode"
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,932 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="html/html; charset=utf-8" />
|
||||
<title>M13ProgressConsole Class Reference</title>
|
||||
<meta id="xcode-display" name="xcode-display" content="render"/>
|
||||
<link rel="stylesheet" type="text/css" href="../css/styles.css" media="all" />
|
||||
<link rel="stylesheet" type="text/css" media="print" href="../css/stylesPrint.css" />
|
||||
<meta name="generator" content="appledoc 2.2 (build 961)" />
|
||||
</head>
|
||||
<body>
|
||||
<header id="top_header">
|
||||
<div id="library" class="hideInXcode">
|
||||
<h1><a id="libraryTitle" href="../index.html">M13ProgressSuite </a></h1>
|
||||
<a id="developerHome" href="../index.html">Marxon13 Productions (Brandon McQuilkin)</a>
|
||||
</div>
|
||||
|
||||
<div id="title" role="banner">
|
||||
<h1 class="hideInXcode">M13ProgressConsole Class Reference</h1>
|
||||
</div>
|
||||
<ul id="headerButtons" role="toolbar">
|
||||
<li id="toc_button">
|
||||
<button aria-label="Show Table of Contents" role="checkbox" class="open" id="table_of_contents"><span class="disclosure"></span>Table of Contents</button>
|
||||
</li>
|
||||
<li id="jumpto_button" role="navigation">
|
||||
<select id="jumpTo">
|
||||
<option value="top">Jump To…</option>
|
||||
|
||||
<option value="overview">Overview</option>
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="tasks">Tasks</option>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="properties">Properties</option>
|
||||
|
||||
<option value="//api/name/animationDuration"> animationDuration</option>
|
||||
|
||||
<option value="//api/name/indeterminate"> indeterminate</option>
|
||||
|
||||
<option value="//api/name/lines"> lines</option>
|
||||
|
||||
<option value="//api/name/maskColor"> maskColor</option>
|
||||
|
||||
<option value="//api/name/maskType"> maskType</option>
|
||||
|
||||
<option value="//api/name/prefix"> prefix</option>
|
||||
|
||||
<option value="//api/name/progress"> progress</option>
|
||||
|
||||
<option value="//api/name/progressType"> progressType</option>
|
||||
|
||||
<option value="//api/name/showCursor"> showCursor</option>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="instance_methods">Instance Methods</option>
|
||||
|
||||
<option value="//api/name/addNewLineWithString:"> - addNewLineWithString:</option>
|
||||
|
||||
<option value="//api/name/clear"> - clear</option>
|
||||
|
||||
<option value="//api/name/setCurrentLine:"> - setCurrentLine:</option>
|
||||
|
||||
<option value="//api/name/setProgress:"> - setProgress:</option>
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
</li>
|
||||
</ul>
|
||||
</header>
|
||||
<nav id="tocContainer" class="isShowingTOC">
|
||||
<ul id="toc" role="tree">
|
||||
|
||||
<li role="treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#overview">Overview</a></span></li>
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" id="task_treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#tasks">Tasks</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#task_Progress">Progress</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#task_Appearance">Appearance</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#task_Properties">Properties</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#task_Actions">Actions</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#properties">Properties</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/animationDuration">animationDuration</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/indeterminate">indeterminate</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/lines">lines</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/maskColor">maskColor</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/maskType">maskType</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/prefix">prefix</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/progress">progress</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/progressType">progressType</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/showCursor">showCursor</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#instance_methods">Instance Methods</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/addNewLineWithString:">addNewLineWithString:</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/clear">clear</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setCurrentLine:">setCurrentLine:</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setProgress:">setProgress:</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<article>
|
||||
<div id="contents" class="isShowingTOC" role="main">
|
||||
<a title="M13ProgressConsole Class Reference" name="top"></a>
|
||||
<div class="main-navigation navigation-top">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="header">
|
||||
<div class="section-header">
|
||||
<h1 class="title title-header">M13ProgressConsole Class Reference</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div id="container">
|
||||
|
||||
<div class="section section-specification"><table cellspacing="0"><tbody>
|
||||
<tr>
|
||||
<td class="specification-title">Inherits from</td>
|
||||
<td class="specification-value">UITextView</td>
|
||||
</tr><tr>
|
||||
<td class="specification-title">Declared in</td>
|
||||
<td class="specification-value">M13ProgressConsole.h<br />M13ProgressConsole.m</td>
|
||||
</tr>
|
||||
</tbody></table></div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-overview">
|
||||
<a title="Overview" name="overview"></a>
|
||||
<h2 class="subtitle subtitle-overview">Overview</h2>
|
||||
<p>A <a href="#//api/name/progress">progress</a> view that shows <a href="#//api/name/progress">progress</a> in the style of terminal.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-tasks">
|
||||
<a title="Tasks" name="tasks"></a>
|
||||
<h2 class="subtitle subtitle-tasks">Tasks</h2>
|
||||
|
||||
|
||||
<a title="Progress" name="task_Progress"></a>
|
||||
<h3 class="subsubtitle task-title">Progress</h3>
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/progress"> progress</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/indeterminate"> indeterminate</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/progressType"> progressType</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<a title="Appearance" name="task_Appearance"></a>
|
||||
<h3 class="subsubtitle task-title">Appearance</h3>
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/maskType"> maskType</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/maskColor"> maskColor</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/showCursor"> showCursor</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/prefix"> prefix</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/lines"> lines</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<a title="Properties" name="task_Properties"></a>
|
||||
<h3 class="subsubtitle task-title">Properties</h3>
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/animationDuration"> animationDuration</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<a title="Actions" name="task_Actions"></a>
|
||||
<h3 class="subsubtitle task-title">Actions</h3>
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/setProgress:">– setProgress:</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/setCurrentLine:">– setCurrentLine:</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/addNewLineWithString:">– addNewLineWithString:</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/clear">– clear</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Properties" name="properties"></a>
|
||||
<h2 class="subtitle subtitle-methods">Properties</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/animationDuration" title="animationDuration"></a>
|
||||
<h3 class="subsubtitle method-title">animationDuration</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The durations of animations in seconds.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CGFloat animationDuration</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressConsole.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/indeterminate" title="indeterminate"></a>
|
||||
<h3 class="subsubtitle method-title">indeterminate</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Wether or not the <a href="#//api/name/progress">progress</a> view is indeterminate.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) BOOL indeterminate</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressConsole.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/lines" title="lines"></a>
|
||||
<h3 class="subsubtitle method-title">lines</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The array containing all the lines displyed.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, retain) NSArray *lines</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressConsole.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/maskColor" title="maskColor"></a>
|
||||
<h3 class="subsubtitle method-title">maskColor</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The color of the mask if set to solid color.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, retain) UIColor *maskColor</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressConsole.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/maskType" title="maskType"></a>
|
||||
<h3 class="subsubtitle method-title">maskType</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The background type of the console.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) M13ProgressConsoleMaskType maskType</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressConsole.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/prefix" title="prefix"></a>
|
||||
<h3 class="subsubtitle method-title">prefix</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The prefix string for each line.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, retain) NSString *prefix</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressConsole.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/progress" title="progress"></a>
|
||||
<h3 class="subsubtitle method-title">progress</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The progress displayed to the user.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, readonly) CGFloat progress</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressConsole.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/progressType" title="progressType"></a>
|
||||
<h3 class="subsubtitle method-title">progressType</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Show <a href="#//api/name/progress">progress</a> at the end of each line.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) M13ProgressConsoleProgressType progressType</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressConsole.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/showCursor" title="showCursor"></a>
|
||||
<h3 class="subsubtitle method-title">showCursor</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Wether or not to show the cursor.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) BOOL showCursor</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressConsole.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Instance Methods" name="instance_methods"></a>
|
||||
<h2 class="subtitle subtitle-methods">Instance Methods</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/addNewLineWithString:" title="addNewLineWithString:"></a>
|
||||
<h3 class="subsubtitle method-title">addNewLineWithString:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Add a new line with the given text.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)addNewLineWithString:(NSString *)<em>newLine</em></code></div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection arguments-section parameters">
|
||||
<h4 class="method-subtitle parameter-title">Parameters</h4>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>newLine</em></dt>
|
||||
<dd><p>The text to start a new line with.</p></dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressConsole.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/clear" title="clear"></a>
|
||||
<h3 class="subsubtitle method-title">clear</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Clears the console.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)clear</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressConsole.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/setCurrentLine:" title="setCurrentLine:"></a>
|
||||
<h3 class="subsubtitle method-title">setCurrentLine:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Set the text of the current line.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)setCurrentLine:(NSString *)<em>currentLine</em></code></div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection arguments-section parameters">
|
||||
<h4 class="method-subtitle parameter-title">Parameters</h4>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>currentLine</em></dt>
|
||||
<dd><p>The string to replace the current line with.</p></dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressConsole.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/setProgress:" title="setProgress:"></a>
|
||||
<h3 class="subsubtitle method-title">setProgress:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Set the <a href="#//api/name/progress">progress</a> of the <a href="../Classes/M13ProgressView.html"><code>M13ProgressView</code></a>.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)setProgress:(CGFloat)<em>progress</em></code></div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection arguments-section parameters">
|
||||
<h4 class="method-subtitle parameter-title">Parameters</h4>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>progress</em></dt>
|
||||
<dd><p>The <a href="#//api/name/progress">progress</a> to show on the current line.</p></dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressConsole.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="main-navigation navigation-bottom">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<hr />
|
||||
<div class="footer-copyright">
|
||||
<p><span class="copyright">© 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-05-12)</span><br />
|
||||
|
||||
<span class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2 (build 961)</a>.</span></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
<script type="text/javascript">
|
||||
function jumpToChange()
|
||||
{
|
||||
window.location.hash = this.options[this.selectedIndex].value;
|
||||
}
|
||||
|
||||
function toggleTOC()
|
||||
{
|
||||
var contents = document.getElementById('contents');
|
||||
var tocContainer = document.getElementById('tocContainer');
|
||||
|
||||
if (this.getAttribute('class') == 'open')
|
||||
{
|
||||
this.setAttribute('class', '');
|
||||
contents.setAttribute('class', '');
|
||||
tocContainer.setAttribute('class', '');
|
||||
|
||||
window.name = "hideTOC";
|
||||
}
|
||||
else
|
||||
{
|
||||
this.setAttribute('class', 'open');
|
||||
contents.setAttribute('class', 'isShowingTOC');
|
||||
tocContainer.setAttribute('class', 'isShowingTOC');
|
||||
|
||||
window.name = "";
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function toggleTOCEntryChildren(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
var currentClass = this.getAttribute('class');
|
||||
if (currentClass == 'children') {
|
||||
this.setAttribute('class', 'children open');
|
||||
}
|
||||
else if (currentClass == 'children open') {
|
||||
this.setAttribute('class', 'children');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function tocEntryClick(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
return true;
|
||||
}
|
||||
|
||||
function init()
|
||||
{
|
||||
var selectElement = document.getElementById('jumpTo');
|
||||
selectElement.addEventListener('change', jumpToChange, false);
|
||||
|
||||
var tocButton = document.getElementById('table_of_contents');
|
||||
tocButton.addEventListener('click', toggleTOC, false);
|
||||
|
||||
var taskTreeItem = document.getElementById('task_treeitem');
|
||||
if (taskTreeItem.getElementsByTagName('li').length > 0)
|
||||
{
|
||||
taskTreeItem.setAttribute('class', 'children');
|
||||
taskTreeItem.firstChild.setAttribute('class', 'disclosure');
|
||||
}
|
||||
|
||||
var tocList = document.getElementById('toc');
|
||||
|
||||
var tocEntries = tocList.getElementsByTagName('li');
|
||||
for (var i = 0; i < tocEntries.length; i++) {
|
||||
tocEntries[i].addEventListener('click', toggleTOCEntryChildren, false);
|
||||
}
|
||||
|
||||
var tocLinks = tocList.getElementsByTagName('a');
|
||||
for (var i = 0; i < tocLinks.length; i++) {
|
||||
tocLinks[i].addEventListener('click', tocEntryClick, false);
|
||||
}
|
||||
|
||||
if (window.name == "hideTOC") {
|
||||
toggleTOC.call(tocButton);
|
||||
}
|
||||
}
|
||||
|
||||
window.onload = init;
|
||||
|
||||
// If showing in Xcode, hide the TOC and Header
|
||||
if (navigator.userAgent.match(/xcode/i)) {
|
||||
document.getElementById("contents").className = "hideInXcode"
|
||||
document.getElementById("tocContainer").className = "hideInXcode"
|
||||
document.getElementById("top_header").className = "hideInXcode"
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,646 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="html/html; charset=utf-8" />
|
||||
<title>M13ProgressView Class Reference</title>
|
||||
<meta id="xcode-display" name="xcode-display" content="render"/>
|
||||
<link rel="stylesheet" type="text/css" href="../css/styles.css" media="all" />
|
||||
<link rel="stylesheet" type="text/css" media="print" href="../css/stylesPrint.css" />
|
||||
<meta name="generator" content="appledoc 2.2 (build 961)" />
|
||||
</head>
|
||||
<body>
|
||||
<header id="top_header">
|
||||
<div id="library" class="hideInXcode">
|
||||
<h1><a id="libraryTitle" href="../index.html">M13ProgressSuite </a></h1>
|
||||
<a id="developerHome" href="../index.html">Marxon13 Productions (Brandon McQuilkin)</a>
|
||||
</div>
|
||||
|
||||
<div id="title" role="banner">
|
||||
<h1 class="hideInXcode">M13ProgressView Class Reference</h1>
|
||||
</div>
|
||||
<ul id="headerButtons" role="toolbar">
|
||||
<li id="toc_button">
|
||||
<button aria-label="Show Table of Contents" role="checkbox" class="open" id="table_of_contents"><span class="disclosure"></span>Table of Contents</button>
|
||||
</li>
|
||||
<li id="jumpto_button" role="navigation">
|
||||
<select id="jumpTo">
|
||||
<option value="top">Jump To…</option>
|
||||
|
||||
<option value="overview">Overview</option>
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="tasks">Tasks</option>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="properties">Properties</option>
|
||||
|
||||
<option value="//api/name/animationDuration"> animationDuration</option>
|
||||
|
||||
<option value="//api/name/indeterminate"> indeterminate</option>
|
||||
|
||||
<option value="//api/name/primaryColor"> primaryColor</option>
|
||||
|
||||
<option value="//api/name/progress"> progress</option>
|
||||
|
||||
<option value="//api/name/secondaryColor"> secondaryColor</option>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="instance_methods">Instance Methods</option>
|
||||
|
||||
<option value="//api/name/performAction:animated:"> - performAction:animated:</option>
|
||||
|
||||
<option value="//api/name/setProgress:animated:"> - setProgress:animated:</option>
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
</li>
|
||||
</ul>
|
||||
</header>
|
||||
<nav id="tocContainer" class="isShowingTOC">
|
||||
<ul id="toc" role="tree">
|
||||
|
||||
<li role="treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#overview">Overview</a></span></li>
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" id="task_treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#tasks">Tasks</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#task_Appearance">Appearance</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#task_Properties">Properties</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#task_Actions">Actions</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#properties">Properties</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/animationDuration">animationDuration</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/indeterminate">indeterminate</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/primaryColor">primaryColor</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/progress">progress</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/secondaryColor">secondaryColor</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#instance_methods">Instance Methods</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/performAction:animated:">performAction:animated:</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setProgress:animated:">setProgress:animated:</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<article>
|
||||
<div id="contents" class="isShowingTOC" role="main">
|
||||
<a title="M13ProgressView Class Reference" name="top"></a>
|
||||
<div class="main-navigation navigation-top">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="header">
|
||||
<div class="section-header">
|
||||
<h1 class="title title-header">M13ProgressView Class Reference</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div id="container">
|
||||
|
||||
<div class="section section-specification"><table cellspacing="0"><tbody>
|
||||
<tr>
|
||||
<td class="specification-title">Inherits from</td>
|
||||
<td class="specification-value">UIView</td>
|
||||
</tr><tr>
|
||||
<td class="specification-title">Declared in</td>
|
||||
<td class="specification-value">M13ProgressView.h<br />M13ProgressView.m</td>
|
||||
</tr>
|
||||
</tbody></table></div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-overview">
|
||||
<a title="Overview" name="overview"></a>
|
||||
<h2 class="subtitle subtitle-overview">Overview</h2>
|
||||
<p>A standardized base upon which to build <a href="#//api/name/progress">progress</a> views for applications. This allows one to use any subclass <a href="#//api/name/progress">progress</a> view in any component that use this standard.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-tasks">
|
||||
<a title="Tasks" name="tasks"></a>
|
||||
<h2 class="subtitle subtitle-tasks">Tasks</h2>
|
||||
|
||||
|
||||
<a title="Appearance" name="task_Appearance"></a>
|
||||
<h3 class="subsubtitle task-title">Appearance</h3>
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/primaryColor"> primaryColor</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/secondaryColor"> secondaryColor</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<a title="Properties" name="task_Properties"></a>
|
||||
<h3 class="subsubtitle task-title">Properties</h3>
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/indeterminate"> indeterminate</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/animationDuration"> animationDuration</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/progress"> progress</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<a title="Actions" name="task_Actions"></a>
|
||||
<h3 class="subsubtitle task-title">Actions</h3>
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/setProgress:animated:">– setProgress:animated:</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/performAction:animated:">– performAction:animated:</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Properties" name="properties"></a>
|
||||
<h2 class="subtitle subtitle-methods">Properties</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/animationDuration" title="animationDuration"></a>
|
||||
<h3 class="subsubtitle method-title">animationDuration</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The durations of animations in seconds.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CGFloat animationDuration</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressView.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/indeterminate" title="indeterminate"></a>
|
||||
<h3 class="subsubtitle method-title">indeterminate</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Wether or not the <a href="#//api/name/progress">progress</a> view is indeterminate.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) BOOL indeterminate</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressView.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/primaryColor" title="primaryColor"></a>
|
||||
<h3 class="subsubtitle method-title">primaryColor</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The primary color of the <code>M13ProgressView</code>.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, retain) UIColor *primaryColor</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressView.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/progress" title="progress"></a>
|
||||
<h3 class="subsubtitle method-title">progress</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The progress displayed to the user.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, readonly) CGFloat progress</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressView.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/secondaryColor" title="secondaryColor"></a>
|
||||
<h3 class="subsubtitle method-title">secondaryColor</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The secondary color of the <code>M13ProgressView</code>.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, retain) UIColor *secondaryColor</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressView.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Instance Methods" name="instance_methods"></a>
|
||||
<h2 class="subtitle subtitle-methods">Instance Methods</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/performAction:animated:" title="performAction:animated:"></a>
|
||||
<h3 class="subsubtitle method-title">performAction:animated:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Perform the given action if defined. Usually showing success or failure.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)performAction:(M13ProgressViewAction)<em>action</em> animated:(BOOL)<em>animated</em></code></div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection arguments-section parameters">
|
||||
<h4 class="method-subtitle parameter-title">Parameters</h4>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>action</em></dt>
|
||||
<dd><p>The action to perform.</p></dd>
|
||||
</dl>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>animated</em></dt>
|
||||
<dd><p>Wether or not to animate the change</p></dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressView.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/setProgress:animated:" title="setProgress:animated:"></a>
|
||||
<h3 class="subsubtitle method-title">setProgress:animated:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Set the <a href="#//api/name/progress">progress</a> of the <code>M13ProgressView</code>.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)setProgress:(CGFloat)<em>progress</em> animated:(BOOL)<em>animated</em></code></div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection arguments-section parameters">
|
||||
<h4 class="method-subtitle parameter-title">Parameters</h4>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>progress</em></dt>
|
||||
<dd><p>The <a href="#//api/name/progress">progress</a> to show on the <a href="#//api/name/progress">progress</a> view.</p></dd>
|
||||
</dl>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>animated</em></dt>
|
||||
<dd><p>Wether or not to animate the <a href="#//api/name/progress">progress</a> change.</p></dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressView.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="main-navigation navigation-bottom">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<hr />
|
||||
<div class="footer-copyright">
|
||||
<p><span class="copyright">© 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-05-12)</span><br />
|
||||
|
||||
<span class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2 (build 961)</a>.</span></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
<script type="text/javascript">
|
||||
function jumpToChange()
|
||||
{
|
||||
window.location.hash = this.options[this.selectedIndex].value;
|
||||
}
|
||||
|
||||
function toggleTOC()
|
||||
{
|
||||
var contents = document.getElementById('contents');
|
||||
var tocContainer = document.getElementById('tocContainer');
|
||||
|
||||
if (this.getAttribute('class') == 'open')
|
||||
{
|
||||
this.setAttribute('class', '');
|
||||
contents.setAttribute('class', '');
|
||||
tocContainer.setAttribute('class', '');
|
||||
|
||||
window.name = "hideTOC";
|
||||
}
|
||||
else
|
||||
{
|
||||
this.setAttribute('class', 'open');
|
||||
contents.setAttribute('class', 'isShowingTOC');
|
||||
tocContainer.setAttribute('class', 'isShowingTOC');
|
||||
|
||||
window.name = "";
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function toggleTOCEntryChildren(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
var currentClass = this.getAttribute('class');
|
||||
if (currentClass == 'children') {
|
||||
this.setAttribute('class', 'children open');
|
||||
}
|
||||
else if (currentClass == 'children open') {
|
||||
this.setAttribute('class', 'children');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function tocEntryClick(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
return true;
|
||||
}
|
||||
|
||||
function init()
|
||||
{
|
||||
var selectElement = document.getElementById('jumpTo');
|
||||
selectElement.addEventListener('change', jumpToChange, false);
|
||||
|
||||
var tocButton = document.getElementById('table_of_contents');
|
||||
tocButton.addEventListener('click', toggleTOC, false);
|
||||
|
||||
var taskTreeItem = document.getElementById('task_treeitem');
|
||||
if (taskTreeItem.getElementsByTagName('li').length > 0)
|
||||
{
|
||||
taskTreeItem.setAttribute('class', 'children');
|
||||
taskTreeItem.firstChild.setAttribute('class', 'disclosure');
|
||||
}
|
||||
|
||||
var tocList = document.getElementById('toc');
|
||||
|
||||
var tocEntries = tocList.getElementsByTagName('li');
|
||||
for (var i = 0; i < tocEntries.length; i++) {
|
||||
tocEntries[i].addEventListener('click', toggleTOCEntryChildren, false);
|
||||
}
|
||||
|
||||
var tocLinks = tocList.getElementsByTagName('a');
|
||||
for (var i = 0; i < tocLinks.length; i++) {
|
||||
tocLinks[i].addEventListener('click', tocEntryClick, false);
|
||||
}
|
||||
|
||||
if (window.name == "hideTOC") {
|
||||
toggleTOC.call(tocButton);
|
||||
}
|
||||
}
|
||||
|
||||
window.onload = init;
|
||||
|
||||
// If showing in Xcode, hide the TOC and Header
|
||||
if (navigator.userAgent.match(/xcode/i)) {
|
||||
document.getElementById("contents").className = "hideInXcode"
|
||||
document.getElementById("tocContainer").className = "hideInXcode"
|
||||
document.getElementById("top_header").className = "hideInXcode"
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load Diff
-1298
File diff suppressed because it is too large
Load Diff
-842
@@ -1,842 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="html/html; charset=utf-8" />
|
||||
<title>M13ProgressViewFilteredImage Class Reference</title>
|
||||
<meta id="xcode-display" name="xcode-display" content="render"/>
|
||||
<link rel="stylesheet" type="text/css" href="../css/styles.css" media="all" />
|
||||
<link rel="stylesheet" type="text/css" media="print" href="../css/stylesPrint.css" />
|
||||
<meta name="generator" content="appledoc 2.2 (build 961)" />
|
||||
</head>
|
||||
<body>
|
||||
<header id="top_header">
|
||||
<div id="library" class="hideInXcode">
|
||||
<h1><a id="libraryTitle" href="../index.html">M13ProgressSuite </a></h1>
|
||||
<a id="developerHome" href="../index.html">Marxon13 Productions (Brandon McQuilkin)</a>
|
||||
</div>
|
||||
|
||||
<div id="title" role="banner">
|
||||
<h1 class="hideInXcode">M13ProgressViewFilteredImage Class Reference</h1>
|
||||
</div>
|
||||
<ul id="headerButtons" role="toolbar">
|
||||
<li id="toc_button">
|
||||
<button aria-label="Show Table of Contents" role="checkbox" class="open" id="table_of_contents"><span class="disclosure"></span>Table of Contents</button>
|
||||
</li>
|
||||
<li id="jumpto_button" role="navigation">
|
||||
<select id="jumpTo">
|
||||
<option value="top">Jump To…</option>
|
||||
|
||||
<option value="overview">Overview</option>
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="tasks">Tasks</option>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="properties">Properties</option>
|
||||
|
||||
<option value="//api/name/animationFromValue"> animationFromValue</option>
|
||||
|
||||
<option value="//api/name/animationStartTime"> animationStartTime</option>
|
||||
|
||||
<option value="//api/name/animationToValue"> animationToValue</option>
|
||||
|
||||
<option value="//api/name/displayLink"> displayLink</option>
|
||||
|
||||
<option value="//api/name/filterParameters"> filterParameters</option>
|
||||
|
||||
<option value="//api/name/filters"> filters</option>
|
||||
|
||||
<option value="//api/name/progressImage"> progressImage</option>
|
||||
|
||||
<option value="//api/name/progressView"> progressView</option>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="instance_methods">Instance Methods</option>
|
||||
|
||||
<option value="//api/name/performAction:animated:"> - performAction:animated:</option>
|
||||
|
||||
<option value="//api/name/setIndeterminate:"> - setIndeterminate:</option>
|
||||
|
||||
<option value="//api/name/setProgress:animated:"> - setProgress:animated:</option>
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
</li>
|
||||
</ul>
|
||||
</header>
|
||||
<nav id="tocContainer" class="isShowingTOC">
|
||||
<ul id="toc" role="tree">
|
||||
|
||||
<li role="treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#overview">Overview</a></span></li>
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" id="task_treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#tasks">Tasks</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#task_Appearance">Appearance</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#task_Extension Methods">Extension Methods</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#properties">Properties</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/animationFromValue">animationFromValue</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/animationStartTime">animationStartTime</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/animationToValue">animationToValue</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/displayLink">displayLink</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/filterParameters">filterParameters</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/filters">filters</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/progressImage">progressImage</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/progressView">progressView</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#instance_methods">Instance Methods</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/performAction:animated:">performAction:animated:</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setIndeterminate:">setIndeterminate:</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setProgress:animated:">setProgress:animated:</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<article>
|
||||
<div id="contents" class="isShowingTOC" role="main">
|
||||
<a title="M13ProgressViewFilteredImage Class Reference" name="top"></a>
|
||||
<div class="main-navigation navigation-top">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="header">
|
||||
<div class="section-header">
|
||||
<h1 class="title title-header">M13ProgressViewFilteredImage Class Reference</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div id="container">
|
||||
|
||||
<div class="section section-specification"><table cellspacing="0"><tbody>
|
||||
<tr>
|
||||
<td class="specification-title">Inherits from</td>
|
||||
<td class="specification-value"><a href="../Classes/M13ProgressView.html">M13ProgressView</a> : UIView</td>
|
||||
</tr><tr>
|
||||
<td class="specification-title">Declared in</td>
|
||||
<td class="specification-value">M13ProgressViewFilteredImage.h<br />M13ProgressViewFilteredImage.m</td>
|
||||
</tr>
|
||||
</tbody></table></div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-overview">
|
||||
<a title="Overview" name="overview"></a>
|
||||
<h2 class="subtitle subtitle-overview">Overview</h2>
|
||||
<p>A progress view where progress is shown by changes in CIFilters.</p><div class="note"><p><strong>Note:</strong> This progress bar does not have in indeterminate mode and does not respond to actions.</p></div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-tasks">
|
||||
<a title="Tasks" name="tasks"></a>
|
||||
<h2 class="subtitle subtitle-tasks">Tasks</h2>
|
||||
|
||||
|
||||
<a title="Appearance" name="task_Appearance"></a>
|
||||
<h3 class="subsubtitle task-title">Appearance</h3>
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/progressImage"> progressImage</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/progressView"> progressView</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/filters"> filters</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/filterParameters"> filterParameters</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<h3 class="subsubtitle task-title">Other Methods</h3>
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/setProgress:animated:">– setProgress:animated:</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/performAction:animated:">– performAction:animated:</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/setIndeterminate:">– setIndeterminate:</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<a title="Extension Methods" name="task_Extension Methods"></a>
|
||||
<h3 class="subsubtitle task-title">Extension Methods</h3>
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/animationFromValue"> animationFromValue</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/animationToValue"> animationToValue</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/animationStartTime"> animationStartTime</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/displayLink"> displayLink</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Properties" name="properties"></a>
|
||||
<h2 class="subtitle subtitle-methods">Properties</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/animationFromValue" title="animationFromValue"></a>
|
||||
<h3 class="subsubtitle method-title">animationFromValue</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The start progress for the progress animation.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CGFloat animationFromValue</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewFilteredImage.m</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/animationStartTime" title="animationStartTime"></a>
|
||||
<h3 class="subsubtitle method-title">animationStartTime</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The start time interval for the animaiton.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CFTimeInterval animationStartTime</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewFilteredImage.m</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/animationToValue" title="animationToValue"></a>
|
||||
<h3 class="subsubtitle method-title">animationToValue</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The end progress for the progress animation.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CGFloat animationToValue</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewFilteredImage.m</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/displayLink" title="displayLink"></a>
|
||||
<h3 class="subsubtitle method-title">displayLink</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Link to the display to keep animations in sync.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, strong) CADisplayLink *displayLink</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewFilteredImage.m</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/filterParameters" title="filterParameters"></a>
|
||||
<h3 class="subsubtitle method-title">filterParameters</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The dictionaries of dictionaries that coresspond to filter properties to be changed.
|
||||
NSArray
|
||||
|—— NSDictionary (Index matches the coresponding CIFilter in <a href="#//api/name/filters">filters</a>)
|
||||
| |—- “Parameter Key” -> NSDictionary
|
||||
| | |—— “Start Value” -> NSNumber
|
||||
| | |—— “End Value” -> NSNumber
|
||||
| |—- “Parameter Key” -> NSDictionary
|
||||
| |—— “Start Value” -> NSNumber
|
||||
| |—— “End Value” -> NSNumber
|
||||
|—— NSDictionary …</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, retain) NSArray *filterParameters</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewFilteredImage.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/filters" title="filters"></a>
|
||||
<h3 class="subsubtitle method-title">filters</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The array of CIFilters to apply to the image.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, retain) NSArray *filters</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection discussion-section">
|
||||
<h4 class="method-subtitle">Discussion</h4>
|
||||
<div class="note"><p><strong>Note:</strong> The filters need to be encased in a M13ProgressViewCIFilterWrapper</p></div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewFilteredImage.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/progressImage" title="progressImage"></a>
|
||||
<h3 class="subsubtitle method-title">progressImage</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The image to use when showing progress.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, retain) UIImage *progressImage</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewFilteredImage.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/progressView" title="progressView"></a>
|
||||
<h3 class="subsubtitle method-title">progressView</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The UIImageView that shows the progress image.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, retain) UIImageView *progressView</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewFilteredImage.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Instance Methods" name="instance_methods"></a>
|
||||
<h2 class="subtitle subtitle-methods">Instance Methods</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/performAction:animated:" title="performAction:animated:"></a>
|
||||
<h3 class="subsubtitle method-title">performAction:animated:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Perform the given action if defined. Usually showing success or failure.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)performAction:(M13ProgressViewAction)<em>action</em> animated:(BOOL)<em>animated</em></code></div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection arguments-section parameters">
|
||||
<h4 class="method-subtitle parameter-title">Parameters</h4>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>action</em></dt>
|
||||
<dd><p>The action to perform.</p></dd>
|
||||
</dl>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>animated</em></dt>
|
||||
<dd><p>Wether or not to animate the change</p></dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressView.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/setIndeterminate:" title="setIndeterminate:"></a>
|
||||
<h3 class="subsubtitle method-title">setIndeterminate:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Wether or not the <a href="#//api/name/progress">progress</a> view is indeterminate.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)setIndeterminate:(BOOL)<em>indeterminate</em></code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressView.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/setProgress:animated:" title="setProgress:animated:"></a>
|
||||
<h3 class="subsubtitle method-title">setProgress:animated:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Set the <a href="#//api/name/progress">progress</a> of the <code>M13ProgressView</code>.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)setProgress:(CGFloat)<em>progress</em> animated:(BOOL)<em>animated</em></code></div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection arguments-section parameters">
|
||||
<h4 class="method-subtitle parameter-title">Parameters</h4>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>progress</em></dt>
|
||||
<dd><p>The <a href="#//api/name/progress">progress</a> to show on the <a href="#//api/name/progress">progress</a> view.</p></dd>
|
||||
</dl>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>animated</em></dt>
|
||||
<dd><p>Wether or not to animate the <a href="#//api/name/progress">progress</a> change.</p></dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressView.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="main-navigation navigation-bottom">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<hr />
|
||||
<div class="footer-copyright">
|
||||
<p><span class="copyright">© 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-05-12)</span><br />
|
||||
|
||||
<span class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2 (build 961)</a>.</span></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
<script type="text/javascript">
|
||||
function jumpToChange()
|
||||
{
|
||||
window.location.hash = this.options[this.selectedIndex].value;
|
||||
}
|
||||
|
||||
function toggleTOC()
|
||||
{
|
||||
var contents = document.getElementById('contents');
|
||||
var tocContainer = document.getElementById('tocContainer');
|
||||
|
||||
if (this.getAttribute('class') == 'open')
|
||||
{
|
||||
this.setAttribute('class', '');
|
||||
contents.setAttribute('class', '');
|
||||
tocContainer.setAttribute('class', '');
|
||||
|
||||
window.name = "hideTOC";
|
||||
}
|
||||
else
|
||||
{
|
||||
this.setAttribute('class', 'open');
|
||||
contents.setAttribute('class', 'isShowingTOC');
|
||||
tocContainer.setAttribute('class', 'isShowingTOC');
|
||||
|
||||
window.name = "";
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function toggleTOCEntryChildren(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
var currentClass = this.getAttribute('class');
|
||||
if (currentClass == 'children') {
|
||||
this.setAttribute('class', 'children open');
|
||||
}
|
||||
else if (currentClass == 'children open') {
|
||||
this.setAttribute('class', 'children');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function tocEntryClick(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
return true;
|
||||
}
|
||||
|
||||
function init()
|
||||
{
|
||||
var selectElement = document.getElementById('jumpTo');
|
||||
selectElement.addEventListener('change', jumpToChange, false);
|
||||
|
||||
var tocButton = document.getElementById('table_of_contents');
|
||||
tocButton.addEventListener('click', toggleTOC, false);
|
||||
|
||||
var taskTreeItem = document.getElementById('task_treeitem');
|
||||
if (taskTreeItem.getElementsByTagName('li').length > 0)
|
||||
{
|
||||
taskTreeItem.setAttribute('class', 'children');
|
||||
taskTreeItem.firstChild.setAttribute('class', 'disclosure');
|
||||
}
|
||||
|
||||
var tocList = document.getElementById('toc');
|
||||
|
||||
var tocEntries = tocList.getElementsByTagName('li');
|
||||
for (var i = 0; i < tocEntries.length; i++) {
|
||||
tocEntries[i].addEventListener('click', toggleTOCEntryChildren, false);
|
||||
}
|
||||
|
||||
var tocLinks = tocList.getElementsByTagName('a');
|
||||
for (var i = 0; i < tocLinks.length; i++) {
|
||||
tocLinks[i].addEventListener('click', tocEntryClick, false);
|
||||
}
|
||||
|
||||
if (window.name == "hideTOC") {
|
||||
toggleTOC.call(tocButton);
|
||||
}
|
||||
}
|
||||
|
||||
window.onload = init;
|
||||
|
||||
// If showing in Xcode, hide the TOC and Header
|
||||
if (navigator.userAgent.match(/xcode/i)) {
|
||||
document.getElementById("contents").className = "hideInXcode"
|
||||
document.getElementById("tocContainer").className = "hideInXcode"
|
||||
document.getElementById("top_header").className = "hideInXcode"
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,874 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="html/html; charset=utf-8" />
|
||||
<title>M13ProgressViewImage Class Reference</title>
|
||||
<meta id="xcode-display" name="xcode-display" content="render"/>
|
||||
<link rel="stylesheet" type="text/css" href="../css/styles.css" media="all" />
|
||||
<link rel="stylesheet" type="text/css" media="print" href="../css/stylesPrint.css" />
|
||||
<meta name="generator" content="appledoc 2.2 (build 961)" />
|
||||
</head>
|
||||
<body>
|
||||
<header id="top_header">
|
||||
<div id="library" class="hideInXcode">
|
||||
<h1><a id="libraryTitle" href="../index.html">M13ProgressSuite </a></h1>
|
||||
<a id="developerHome" href="../index.html">Marxon13 Productions (Brandon McQuilkin)</a>
|
||||
</div>
|
||||
|
||||
<div id="title" role="banner">
|
||||
<h1 class="hideInXcode">M13ProgressViewImage Class Reference</h1>
|
||||
</div>
|
||||
<ul id="headerButtons" role="toolbar">
|
||||
<li id="toc_button">
|
||||
<button aria-label="Show Table of Contents" role="checkbox" class="open" id="table_of_contents"><span class="disclosure"></span>Table of Contents</button>
|
||||
</li>
|
||||
<li id="jumpto_button" role="navigation">
|
||||
<select id="jumpTo">
|
||||
<option value="top">Jump To…</option>
|
||||
|
||||
<option value="overview">Overview</option>
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="tasks">Tasks</option>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="properties">Properties</option>
|
||||
|
||||
<option value="//api/name/animationFromValue"> animationFromValue</option>
|
||||
|
||||
<option value="//api/name/animationStartTime"> animationStartTime</option>
|
||||
|
||||
<option value="//api/name/animationToValue"> animationToValue</option>
|
||||
|
||||
<option value="//api/name/displayLink"> displayLink</option>
|
||||
|
||||
<option value="//api/name/drawGreyscaleBackground"> drawGreyscaleBackground</option>
|
||||
|
||||
<option value="//api/name/progress"> progress</option>
|
||||
|
||||
<option value="//api/name/progressDirection"> progressDirection</option>
|
||||
|
||||
<option value="//api/name/progressImage"> progressImage</option>
|
||||
|
||||
<option value="//api/name/progressView"> progressView</option>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="instance_methods">Instance Methods</option>
|
||||
|
||||
<option value="//api/name/performAction:animated:"> - performAction:animated:</option>
|
||||
|
||||
<option value="//api/name/setIndeterminate:"> - setIndeterminate:</option>
|
||||
|
||||
<option value="//api/name/setProgress:animated:"> - setProgress:animated:</option>
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
</li>
|
||||
</ul>
|
||||
</header>
|
||||
<nav id="tocContainer" class="isShowingTOC">
|
||||
<ul id="toc" role="tree">
|
||||
|
||||
<li role="treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#overview">Overview</a></span></li>
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" id="task_treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#tasks">Tasks</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#task_Appearance">Appearance</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#task_Extension Methods">Extension Methods</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#properties">Properties</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/animationFromValue">animationFromValue</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/animationStartTime">animationStartTime</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/animationToValue">animationToValue</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/displayLink">displayLink</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/drawGreyscaleBackground">drawGreyscaleBackground</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/progress">progress</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/progressDirection">progressDirection</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/progressImage">progressImage</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/progressView">progressView</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#instance_methods">Instance Methods</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/performAction:animated:">performAction:animated:</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setIndeterminate:">setIndeterminate:</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setProgress:animated:">setProgress:animated:</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<article>
|
||||
<div id="contents" class="isShowingTOC" role="main">
|
||||
<a title="M13ProgressViewImage Class Reference" name="top"></a>
|
||||
<div class="main-navigation navigation-top">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="header">
|
||||
<div class="section-header">
|
||||
<h1 class="title title-header">M13ProgressViewImage Class Reference</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div id="container">
|
||||
|
||||
<div class="section section-specification"><table cellspacing="0"><tbody>
|
||||
<tr>
|
||||
<td class="specification-title">Inherits from</td>
|
||||
<td class="specification-value"><a href="../Classes/M13ProgressView.html">M13ProgressView</a> : UIView</td>
|
||||
</tr><tr>
|
||||
<td class="specification-title">Declared in</td>
|
||||
<td class="specification-value">M13ProgressViewImage.h<br />M13ProgressViewImage.m</td>
|
||||
</tr>
|
||||
</tbody></table></div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-overview">
|
||||
<a title="Overview" name="overview"></a>
|
||||
<h2 class="subtitle subtitle-overview">Overview</h2>
|
||||
<p>A <a href="#//api/name/progress">progress</a> bar where <a href="#//api/name/progress">progress</a> is shown by cutting an image.</p><div class="note"><p><strong>Note:</strong> This <a href="#//api/name/progress">progress</a> bar does not have in indeterminate mode and does not respond to actions.</p></div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-tasks">
|
||||
<a title="Tasks" name="tasks"></a>
|
||||
<h2 class="subtitle subtitle-tasks">Tasks</h2>
|
||||
|
||||
|
||||
<a title="Appearance" name="task_Appearance"></a>
|
||||
<h3 class="subsubtitle task-title">Appearance</h3>
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/progressImage"> progressImage</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/progressDirection"> progressDirection</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/drawGreyscaleBackground"> drawGreyscaleBackground</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<h3 class="subsubtitle task-title">Other Methods</h3>
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/setProgress:animated:">– setProgress:animated:</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/performAction:animated:">– performAction:animated:</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/setIndeterminate:">– setIndeterminate:</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<a title="Extension Methods" name="task_Extension Methods"></a>
|
||||
<h3 class="subsubtitle task-title">Extension Methods</h3>
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/animationFromValue"> animationFromValue</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/animationToValue"> animationToValue</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/animationStartTime"> animationStartTime</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/displayLink"> displayLink</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/progress"> progress</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/progressView"> progressView</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Properties" name="properties"></a>
|
||||
<h2 class="subtitle subtitle-methods">Properties</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/animationFromValue" title="animationFromValue"></a>
|
||||
<h3 class="subsubtitle method-title">animationFromValue</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The start <a href="#//api/name/progress">progress</a> for the <a href="#//api/name/progress">progress</a> animation.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CGFloat animationFromValue</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewImage.m</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/animationStartTime" title="animationStartTime"></a>
|
||||
<h3 class="subsubtitle method-title">animationStartTime</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The start time interval for the animaiton.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CFTimeInterval animationStartTime</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewImage.m</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/animationToValue" title="animationToValue"></a>
|
||||
<h3 class="subsubtitle method-title">animationToValue</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The end <a href="#//api/name/progress">progress</a> for the <a href="#//api/name/progress">progress</a> animation.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CGFloat animationToValue</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewImage.m</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/displayLink" title="displayLink"></a>
|
||||
<h3 class="subsubtitle method-title">displayLink</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Link to the display to keep animations in sync.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, strong) CADisplayLink *displayLink</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewImage.m</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/drawGreyscaleBackground" title="drawGreyscaleBackground"></a>
|
||||
<h3 class="subsubtitle method-title">drawGreyscaleBackground</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Wether or not to draw the greyscale background.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) BOOL drawGreyscaleBackground</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewImage.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/progress" title="progress"></a>
|
||||
<h3 class="subsubtitle method-title">progress</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Allow us to write to the progress.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, readwrite) CGFloat progress</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewImage.m</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/progressDirection" title="progressDirection"></a>
|
||||
<h3 class="subsubtitle method-title">progressDirection</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The direction of <a href="#//api/name/progress">progress</a>. (What direction the fill proceeds in.)</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) M13ProgressViewImageProgressDirection progressDirection</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewImage.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/progressImage" title="progressImage"></a>
|
||||
<h3 class="subsubtitle method-title">progressImage</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The image to use when showing <a href="#//api/name/progress">progress</a>.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, retain) UIImage *progressImage</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewImage.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/progressView" title="progressView"></a>
|
||||
<h3 class="subsubtitle method-title">progressView</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The UIImageView that shows the <a href="#//api/name/progress">progress</a> image.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, retain) UIImageView *progressView</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewImage.m</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Instance Methods" name="instance_methods"></a>
|
||||
<h2 class="subtitle subtitle-methods">Instance Methods</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/performAction:animated:" title="performAction:animated:"></a>
|
||||
<h3 class="subsubtitle method-title">performAction:animated:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Perform the given action if defined. Usually showing success or failure.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)performAction:(M13ProgressViewAction)<em>action</em> animated:(BOOL)<em>animated</em></code></div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection arguments-section parameters">
|
||||
<h4 class="method-subtitle parameter-title">Parameters</h4>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>action</em></dt>
|
||||
<dd><p>The action to perform.</p></dd>
|
||||
</dl>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>animated</em></dt>
|
||||
<dd><p>Wether or not to animate the change</p></dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressView.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/setIndeterminate:" title="setIndeterminate:"></a>
|
||||
<h3 class="subsubtitle method-title">setIndeterminate:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Wether or not the <a href="#//api/name/progress">progress</a> view is indeterminate.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)setIndeterminate:(BOOL)<em>indeterminate</em></code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressView.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/setProgress:animated:" title="setProgress:animated:"></a>
|
||||
<h3 class="subsubtitle method-title">setProgress:animated:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Set the <a href="#//api/name/progress">progress</a> of the <code>M13ProgressView</code>.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)setProgress:(CGFloat)<em>progress</em> animated:(BOOL)<em>animated</em></code></div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection arguments-section parameters">
|
||||
<h4 class="method-subtitle parameter-title">Parameters</h4>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>progress</em></dt>
|
||||
<dd><p>The <a href="#//api/name/progress">progress</a> to show on the <a href="#//api/name/progress">progress</a> view.</p></dd>
|
||||
</dl>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>animated</em></dt>
|
||||
<dd><p>Wether or not to animate the <a href="#//api/name/progress">progress</a> change.</p></dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressView.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="main-navigation navigation-bottom">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<hr />
|
||||
<div class="footer-copyright">
|
||||
<p><span class="copyright">© 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-05-12)</span><br />
|
||||
|
||||
<span class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2 (build 961)</a>.</span></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
<script type="text/javascript">
|
||||
function jumpToChange()
|
||||
{
|
||||
window.location.hash = this.options[this.selectedIndex].value;
|
||||
}
|
||||
|
||||
function toggleTOC()
|
||||
{
|
||||
var contents = document.getElementById('contents');
|
||||
var tocContainer = document.getElementById('tocContainer');
|
||||
|
||||
if (this.getAttribute('class') == 'open')
|
||||
{
|
||||
this.setAttribute('class', '');
|
||||
contents.setAttribute('class', '');
|
||||
tocContainer.setAttribute('class', '');
|
||||
|
||||
window.name = "hideTOC";
|
||||
}
|
||||
else
|
||||
{
|
||||
this.setAttribute('class', 'open');
|
||||
contents.setAttribute('class', 'isShowingTOC');
|
||||
tocContainer.setAttribute('class', 'isShowingTOC');
|
||||
|
||||
window.name = "";
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function toggleTOCEntryChildren(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
var currentClass = this.getAttribute('class');
|
||||
if (currentClass == 'children') {
|
||||
this.setAttribute('class', 'children open');
|
||||
}
|
||||
else if (currentClass == 'children open') {
|
||||
this.setAttribute('class', 'children');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function tocEntryClick(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
return true;
|
||||
}
|
||||
|
||||
function init()
|
||||
{
|
||||
var selectElement = document.getElementById('jumpTo');
|
||||
selectElement.addEventListener('change', jumpToChange, false);
|
||||
|
||||
var tocButton = document.getElementById('table_of_contents');
|
||||
tocButton.addEventListener('click', toggleTOC, false);
|
||||
|
||||
var taskTreeItem = document.getElementById('task_treeitem');
|
||||
if (taskTreeItem.getElementsByTagName('li').length > 0)
|
||||
{
|
||||
taskTreeItem.setAttribute('class', 'children');
|
||||
taskTreeItem.firstChild.setAttribute('class', 'disclosure');
|
||||
}
|
||||
|
||||
var tocList = document.getElementById('toc');
|
||||
|
||||
var tocEntries = tocList.getElementsByTagName('li');
|
||||
for (var i = 0; i < tocEntries.length; i++) {
|
||||
tocEntries[i].addEventListener('click', toggleTOCEntryChildren, false);
|
||||
}
|
||||
|
||||
var tocLinks = tocList.getElementsByTagName('a');
|
||||
for (var i = 0; i < tocLinks.length; i++) {
|
||||
tocLinks[i].addEventListener('click', tocEntryClick, false);
|
||||
}
|
||||
|
||||
if (window.name == "hideTOC") {
|
||||
toggleTOC.call(tocButton);
|
||||
}
|
||||
}
|
||||
|
||||
window.onload = init;
|
||||
|
||||
// If showing in Xcode, hide the TOC and Header
|
||||
if (navigator.userAgent.match(/xcode/i)) {
|
||||
document.getElementById("contents").className = "hideInXcode"
|
||||
document.getElementById("tocContainer").className = "hideInXcode"
|
||||
document.getElementById("top_header").className = "hideInXcode"
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
-893
@@ -1,893 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="html/html; charset=utf-8" />
|
||||
<title>M13ProgressViewLetterpress Class Reference</title>
|
||||
<meta id="xcode-display" name="xcode-display" content="render"/>
|
||||
<link rel="stylesheet" type="text/css" href="../css/styles.css" media="all" />
|
||||
<link rel="stylesheet" type="text/css" media="print" href="../css/stylesPrint.css" />
|
||||
<meta name="generator" content="appledoc 2.2 (build 961)" />
|
||||
</head>
|
||||
<body>
|
||||
<header id="top_header">
|
||||
<div id="library" class="hideInXcode">
|
||||
<h1><a id="libraryTitle" href="../index.html">M13ProgressSuite </a></h1>
|
||||
<a id="developerHome" href="../index.html">Marxon13 Productions (Brandon McQuilkin)</a>
|
||||
</div>
|
||||
|
||||
<div id="title" role="banner">
|
||||
<h1 class="hideInXcode">M13ProgressViewLetterpress Class Reference</h1>
|
||||
</div>
|
||||
<ul id="headerButtons" role="toolbar">
|
||||
<li id="toc_button">
|
||||
<button aria-label="Show Table of Contents" role="checkbox" class="open" id="table_of_contents"><span class="disclosure"></span>Table of Contents</button>
|
||||
</li>
|
||||
<li id="jumpto_button" role="navigation">
|
||||
<select id="jumpTo">
|
||||
<option value="top">Jump To…</option>
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="tasks">Tasks</option>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="properties">Properties</option>
|
||||
|
||||
<option value="//api/name/animationFromValue"> animationFromValue</option>
|
||||
|
||||
<option value="//api/name/animationStartTime"> animationStartTime</option>
|
||||
|
||||
<option value="//api/name/animationToValue"> animationToValue</option>
|
||||
|
||||
<option value="//api/name/dampingCoefficient"> dampingCoefficient</option>
|
||||
|
||||
<option value="//api/name/displayLink"> displayLink</option>
|
||||
|
||||
<option value="//api/name/mass"> mass</option>
|
||||
|
||||
<option value="//api/name/notchSize"> notchSize</option>
|
||||
|
||||
<option value="//api/name/numberOfGridPoints"> numberOfGridPoints</option>
|
||||
|
||||
<option value="//api/name/pointShape"> pointShape</option>
|
||||
|
||||
<option value="//api/name/pointSpacing"> pointSpacing</option>
|
||||
|
||||
<option value="//api/name/springConstant"> springConstant</option>
|
||||
|
||||
<option value="//api/name/springDisplayLink"> springDisplayLink</option>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="instance_methods">Instance Methods</option>
|
||||
|
||||
<option value="//api/name/setProgress:animated:"> - setProgress:animated:</option>
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
</li>
|
||||
</ul>
|
||||
</header>
|
||||
<nav id="tocContainer" class="isShowingTOC">
|
||||
<ul id="toc" role="tree">
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" id="task_treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#tasks">Tasks</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#task_Properties">Properties</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#task_Extension Methods">Extension Methods</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#properties">Properties</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/animationFromValue">animationFromValue</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/animationStartTime">animationStartTime</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/animationToValue">animationToValue</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/dampingCoefficient">dampingCoefficient</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/displayLink">displayLink</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/mass">mass</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/notchSize">notchSize</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/numberOfGridPoints">numberOfGridPoints</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/pointShape">pointShape</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/pointSpacing">pointSpacing</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/springConstant">springConstant</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/springDisplayLink">springDisplayLink</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#instance_methods">Instance Methods</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setProgress:animated:">setProgress:animated:</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<article>
|
||||
<div id="contents" class="isShowingTOC" role="main">
|
||||
<a title="M13ProgressViewLetterpress Class Reference" name="top"></a>
|
||||
<div class="main-navigation navigation-top">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="header">
|
||||
<div class="section-header">
|
||||
<h1 class="title title-header">M13ProgressViewLetterpress Class Reference</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div id="container">
|
||||
|
||||
<div class="section section-specification"><table cellspacing="0"><tbody>
|
||||
<tr>
|
||||
<td class="specification-title">Inherits from</td>
|
||||
<td class="specification-value"><a href="../Classes/M13ProgressView.html">M13ProgressView</a> : UIView</td>
|
||||
</tr><tr>
|
||||
<td class="specification-title">Declared in</td>
|
||||
<td class="specification-value">M13ProgressViewLetterpress.h<br />M13ProgressViewLetterpress.m</td>
|
||||
</tr>
|
||||
</tbody></table></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-tasks">
|
||||
<a title="Tasks" name="tasks"></a>
|
||||
<h2 class="subtitle subtitle-tasks">Tasks</h2>
|
||||
|
||||
|
||||
<a title="Properties" name="task_Properties"></a>
|
||||
<h3 class="subsubtitle task-title">Properties</h3>
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/numberOfGridPoints"> numberOfGridPoints</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/pointShape"> pointShape</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/pointSpacing"> pointSpacing</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/notchSize"> notchSize</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/springConstant"> springConstant</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/dampingCoefficient"> dampingCoefficient</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/mass"> mass</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<h3 class="subsubtitle task-title">Other Methods</h3>
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/setProgress:animated:">– setProgress:animated:</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<a title="Extension Methods" name="task_Extension Methods"></a>
|
||||
<h3 class="subsubtitle task-title">Extension Methods</h3>
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/animationFromValue"> animationFromValue</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/animationToValue"> animationToValue</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/animationStartTime"> animationStartTime</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/displayLink"> displayLink</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/springDisplayLink"> springDisplayLink</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Properties" name="properties"></a>
|
||||
<h2 class="subtitle subtitle-methods">Properties</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/animationFromValue" title="animationFromValue"></a>
|
||||
<h3 class="subsubtitle method-title">animationFromValue</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The start progress for the progress animation.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CGFloat animationFromValue</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewLetterpress.m</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/animationStartTime" title="animationStartTime"></a>
|
||||
<h3 class="subsubtitle method-title">animationStartTime</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The start time interval for the animaiton.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CFTimeInterval animationStartTime</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewLetterpress.m</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/animationToValue" title="animationToValue"></a>
|
||||
<h3 class="subsubtitle method-title">animationToValue</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The end progress for the progress animation.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CGFloat animationToValue</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewLetterpress.m</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/dampingCoefficient" title="dampingCoefficient"></a>
|
||||
<h3 class="subsubtitle method-title">dampingCoefficient</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The constant that determines how long the progress view “bounces” for.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CGFloat dampingCoefficient</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewLetterpress.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/displayLink" title="displayLink"></a>
|
||||
<h3 class="subsubtitle method-title">displayLink</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Link to the display to keep animations in sync.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, strong) CADisplayLink *displayLink</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewLetterpress.m</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/mass" title="mass"></a>
|
||||
<h3 class="subsubtitle method-title">mass</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The constant that determines how much the <a href="#//api/name/springConstant">springConstant</a> and dampingCoefficent affect the animation.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CGFloat mass</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewLetterpress.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/notchSize" title="notchSize"></a>
|
||||
<h3 class="subsubtitle method-title">notchSize</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The size of the notch to carve out on one side.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CGSize notchSize</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewLetterpress.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/numberOfGridPoints" title="numberOfGridPoints"></a>
|
||||
<h3 class="subsubtitle method-title">numberOfGridPoints</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The number of grid points in each direction.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CGPoint numberOfGridPoints</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewLetterpress.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/pointShape" title="pointShape"></a>
|
||||
<h3 class="subsubtitle method-title">pointShape</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The shape of the grid points.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) M13ProgressViewLetterpressPointShape pointShape</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewLetterpress.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/pointSpacing" title="pointSpacing"></a>
|
||||
<h3 class="subsubtitle method-title">pointSpacing</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The amount of space between the grid points.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CGFloat pointSpacing</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewLetterpress.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/springConstant" title="springConstant"></a>
|
||||
<h3 class="subsubtitle method-title">springConstant</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The spring constant that defines the amount of “spring” the progress view has in its animation.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CGFloat springConstant</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewLetterpress.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/springDisplayLink" title="springDisplayLink"></a>
|
||||
<h3 class="subsubtitle method-title">springDisplayLink</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The display link that controls the spring animation.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, strong) CADisplayLink *springDisplayLink</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewLetterpress.m</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Instance Methods" name="instance_methods"></a>
|
||||
<h2 class="subtitle subtitle-methods">Instance Methods</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/setProgress:animated:" title="setProgress:animated:"></a>
|
||||
<h3 class="subsubtitle method-title">setProgress:animated:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Set the <a href="#//api/name/progress">progress</a> of the <code>M13ProgressView</code>.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)setProgress:(CGFloat)<em>progress</em> animated:(BOOL)<em>animated</em></code></div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection arguments-section parameters">
|
||||
<h4 class="method-subtitle parameter-title">Parameters</h4>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>progress</em></dt>
|
||||
<dd><p>The <a href="#//api/name/progress">progress</a> to show on the <a href="#//api/name/progress">progress</a> view.</p></dd>
|
||||
</dl>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>animated</em></dt>
|
||||
<dd><p>Wether or not to animate the <a href="#//api/name/progress">progress</a> change.</p></dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressView.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="main-navigation navigation-bottom">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<hr />
|
||||
<div class="footer-copyright">
|
||||
<p><span class="copyright">© 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-05-12)</span><br />
|
||||
|
||||
<span class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2 (build 961)</a>.</span></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
<script type="text/javascript">
|
||||
function jumpToChange()
|
||||
{
|
||||
window.location.hash = this.options[this.selectedIndex].value;
|
||||
}
|
||||
|
||||
function toggleTOC()
|
||||
{
|
||||
var contents = document.getElementById('contents');
|
||||
var tocContainer = document.getElementById('tocContainer');
|
||||
|
||||
if (this.getAttribute('class') == 'open')
|
||||
{
|
||||
this.setAttribute('class', '');
|
||||
contents.setAttribute('class', '');
|
||||
tocContainer.setAttribute('class', '');
|
||||
|
||||
window.name = "hideTOC";
|
||||
}
|
||||
else
|
||||
{
|
||||
this.setAttribute('class', 'open');
|
||||
contents.setAttribute('class', 'isShowingTOC');
|
||||
tocContainer.setAttribute('class', 'isShowingTOC');
|
||||
|
||||
window.name = "";
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function toggleTOCEntryChildren(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
var currentClass = this.getAttribute('class');
|
||||
if (currentClass == 'children') {
|
||||
this.setAttribute('class', 'children open');
|
||||
}
|
||||
else if (currentClass == 'children open') {
|
||||
this.setAttribute('class', 'children');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function tocEntryClick(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
return true;
|
||||
}
|
||||
|
||||
function init()
|
||||
{
|
||||
var selectElement = document.getElementById('jumpTo');
|
||||
selectElement.addEventListener('change', jumpToChange, false);
|
||||
|
||||
var tocButton = document.getElementById('table_of_contents');
|
||||
tocButton.addEventListener('click', toggleTOC, false);
|
||||
|
||||
var taskTreeItem = document.getElementById('task_treeitem');
|
||||
if (taskTreeItem.getElementsByTagName('li').length > 0)
|
||||
{
|
||||
taskTreeItem.setAttribute('class', 'children');
|
||||
taskTreeItem.firstChild.setAttribute('class', 'disclosure');
|
||||
}
|
||||
|
||||
var tocList = document.getElementById('toc');
|
||||
|
||||
var tocEntries = tocList.getElementsByTagName('li');
|
||||
for (var i = 0; i < tocEntries.length; i++) {
|
||||
tocEntries[i].addEventListener('click', toggleTOCEntryChildren, false);
|
||||
}
|
||||
|
||||
var tocLinks = tocList.getElementsByTagName('a');
|
||||
for (var i = 0; i < tocLinks.length; i++) {
|
||||
tocLinks[i].addEventListener('click', tocEntryClick, false);
|
||||
}
|
||||
|
||||
if (window.name == "hideTOC") {
|
||||
toggleTOC.call(tocButton);
|
||||
}
|
||||
}
|
||||
|
||||
window.onload = init;
|
||||
|
||||
// If showing in Xcode, hide the TOC and Header
|
||||
if (navigator.userAgent.match(/xcode/i)) {
|
||||
document.getElementById("contents").className = "hideInXcode"
|
||||
document.getElementById("tocContainer").className = "hideInXcode"
|
||||
document.getElementById("top_header").className = "hideInXcode"
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load Diff
-612
@@ -1,612 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="html/html; charset=utf-8" />
|
||||
<title>M13ProgressViewMetroDot Class Reference</title>
|
||||
<meta id="xcode-display" name="xcode-display" content="render"/>
|
||||
<link rel="stylesheet" type="text/css" href="../css/styles.css" media="all" />
|
||||
<link rel="stylesheet" type="text/css" media="print" href="../css/stylesPrint.css" />
|
||||
<meta name="generator" content="appledoc 2.2 (build 961)" />
|
||||
</head>
|
||||
<body>
|
||||
<header id="top_header">
|
||||
<div id="library" class="hideInXcode">
|
||||
<h1><a id="libraryTitle" href="../index.html">M13ProgressSuite </a></h1>
|
||||
<a id="developerHome" href="../index.html">Marxon13 Productions (Brandon McQuilkin)</a>
|
||||
</div>
|
||||
|
||||
<div id="title" role="banner">
|
||||
<h1 class="hideInXcode">M13ProgressViewMetroDot Class Reference</h1>
|
||||
</div>
|
||||
<ul id="headerButtons" role="toolbar">
|
||||
<li id="toc_button">
|
||||
<button aria-label="Show Table of Contents" role="checkbox" class="open" id="table_of_contents"><span class="disclosure"></span>Table of Contents</button>
|
||||
</li>
|
||||
<li id="jumpto_button" role="navigation">
|
||||
<select id="jumpTo">
|
||||
<option value="top">Jump To…</option>
|
||||
|
||||
<option value="overview">Overview</option>
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="tasks">Tasks</option>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="properties">Properties</option>
|
||||
|
||||
<option value="//api/name/failureColor"> failureColor</option>
|
||||
|
||||
<option value="//api/name/highlighted"> highlighted</option>
|
||||
|
||||
<option value="//api/name/primaryColor"> primaryColor</option>
|
||||
|
||||
<option value="//api/name/secondaryColor"> secondaryColor</option>
|
||||
|
||||
<option value="//api/name/successColor"> successColor</option>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="instance_methods">Instance Methods</option>
|
||||
|
||||
<option value="//api/name/copy"> - copy</option>
|
||||
|
||||
<option value="//api/name/performAction:animated:"> - performAction:animated:</option>
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
</li>
|
||||
</ul>
|
||||
</header>
|
||||
<nav id="tocContainer" class="isShowingTOC">
|
||||
<ul id="toc" role="tree">
|
||||
|
||||
<li role="treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#overview">Overview</a></span></li>
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" id="task_treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#tasks">Tasks</a></span><ul>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#properties">Properties</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/failureColor">failureColor</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/highlighted">highlighted</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/primaryColor">primaryColor</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/secondaryColor">secondaryColor</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/successColor">successColor</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#instance_methods">Instance Methods</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/copy">copy</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/performAction:animated:">performAction:animated:</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<article>
|
||||
<div id="contents" class="isShowingTOC" role="main">
|
||||
<a title="M13ProgressViewMetroDot Class Reference" name="top"></a>
|
||||
<div class="main-navigation navigation-top">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="header">
|
||||
<div class="section-header">
|
||||
<h1 class="title title-header">M13ProgressViewMetroDot Class Reference</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div id="container">
|
||||
|
||||
<div class="section section-specification"><table cellspacing="0"><tbody>
|
||||
<tr>
|
||||
<td class="specification-title">Inherits from</td>
|
||||
<td class="specification-value">CALayer</td>
|
||||
</tr><tr>
|
||||
<td class="specification-title">Conforms to</td>
|
||||
<td class="specification-value">NSCopying</td>
|
||||
</tr><tr>
|
||||
<td class="specification-title">Declared in</td>
|
||||
<td class="specification-value">M13ProgressViewMetro.h<br />M13ProgressViewMetro.m</td>
|
||||
</tr>
|
||||
</tbody></table></div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-overview">
|
||||
<a title="Overview" name="overview"></a>
|
||||
<h2 class="subtitle subtitle-overview">Overview</h2>
|
||||
<p>The layer that the <a href="../Classes/M13ProgressViewMetro.html"><code>M13ProgressViewMetro</code></a> animates.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-tasks">
|
||||
<a title="Tasks" name="tasks"></a>
|
||||
<h2 class="subtitle subtitle-tasks">Tasks</h2>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/highlighted"> highlighted</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/successColor"> successColor</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/failureColor"> failureColor</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/primaryColor"> primaryColor</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/secondaryColor"> secondaryColor</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/performAction:animated:">– performAction:animated:</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/copy">– copy</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Properties" name="properties"></a>
|
||||
<h2 class="subtitle subtitle-methods">Properties</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/failureColor" title="failureColor"></a>
|
||||
<h3 class="subsubtitle method-title">failureColor</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The color to show on failure.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, retain) UIColor *failureColor</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewMetro.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/highlighted" title="highlighted"></a>
|
||||
<h3 class="subsubtitle method-title">highlighted</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Wether or not the dot is highlighted. The dot becomes highlighted to show progress.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) BOOL highlighted</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewMetro.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/primaryColor" title="primaryColor"></a>
|
||||
<h3 class="subsubtitle method-title">primaryColor</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The primary color of the dot.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, retain) UIColor *primaryColor</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewMetro.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/secondaryColor" title="secondaryColor"></a>
|
||||
<h3 class="subsubtitle method-title">secondaryColor</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The secondary color of the dot.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, retain) UIColor *secondaryColor</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewMetro.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/successColor" title="successColor"></a>
|
||||
<h3 class="subsubtitle method-title">successColor</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The color to show on success.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, retain) UIColor *successColor</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewMetro.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Instance Methods" name="instance_methods"></a>
|
||||
<h2 class="subtitle subtitle-methods">Instance Methods</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/copy" title="copy"></a>
|
||||
<h3 class="subsubtitle method-title">copy</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>All subclasses must respond to NSCopying.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (id)copy</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewMetro.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/performAction:animated:" title="performAction:animated:"></a>
|
||||
<h3 class="subsubtitle method-title">performAction:animated:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Perform the given action if defined. Usually showing success or failure.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)performAction:(M13ProgressViewAction)<em>action</em> animated:(BOOL)<em>animated</em></code></div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection arguments-section parameters">
|
||||
<h4 class="method-subtitle parameter-title">Parameters</h4>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>action</em></dt>
|
||||
<dd><p>The action to perform.</p></dd>
|
||||
</dl>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>animated</em></dt>
|
||||
<dd><p>Wether or not to animate the change</p></dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewMetro.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="main-navigation navigation-bottom">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<hr />
|
||||
<div class="footer-copyright">
|
||||
<p><span class="copyright">© 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-05-12)</span><br />
|
||||
|
||||
<span class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2 (build 961)</a>.</span></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
<script type="text/javascript">
|
||||
function jumpToChange()
|
||||
{
|
||||
window.location.hash = this.options[this.selectedIndex].value;
|
||||
}
|
||||
|
||||
function toggleTOC()
|
||||
{
|
||||
var contents = document.getElementById('contents');
|
||||
var tocContainer = document.getElementById('tocContainer');
|
||||
|
||||
if (this.getAttribute('class') == 'open')
|
||||
{
|
||||
this.setAttribute('class', '');
|
||||
contents.setAttribute('class', '');
|
||||
tocContainer.setAttribute('class', '');
|
||||
|
||||
window.name = "hideTOC";
|
||||
}
|
||||
else
|
||||
{
|
||||
this.setAttribute('class', 'open');
|
||||
contents.setAttribute('class', 'isShowingTOC');
|
||||
tocContainer.setAttribute('class', 'isShowingTOC');
|
||||
|
||||
window.name = "";
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function toggleTOCEntryChildren(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
var currentClass = this.getAttribute('class');
|
||||
if (currentClass == 'children') {
|
||||
this.setAttribute('class', 'children open');
|
||||
}
|
||||
else if (currentClass == 'children open') {
|
||||
this.setAttribute('class', 'children');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function tocEntryClick(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
return true;
|
||||
}
|
||||
|
||||
function init()
|
||||
{
|
||||
var selectElement = document.getElementById('jumpTo');
|
||||
selectElement.addEventListener('change', jumpToChange, false);
|
||||
|
||||
var tocButton = document.getElementById('table_of_contents');
|
||||
tocButton.addEventListener('click', toggleTOC, false);
|
||||
|
||||
var taskTreeItem = document.getElementById('task_treeitem');
|
||||
if (taskTreeItem.getElementsByTagName('li').length > 0)
|
||||
{
|
||||
taskTreeItem.setAttribute('class', 'children');
|
||||
taskTreeItem.firstChild.setAttribute('class', 'disclosure');
|
||||
}
|
||||
|
||||
var tocList = document.getElementById('toc');
|
||||
|
||||
var tocEntries = tocList.getElementsByTagName('li');
|
||||
for (var i = 0; i < tocEntries.length; i++) {
|
||||
tocEntries[i].addEventListener('click', toggleTOCEntryChildren, false);
|
||||
}
|
||||
|
||||
var tocLinks = tocList.getElementsByTagName('a');
|
||||
for (var i = 0; i < tocLinks.length; i++) {
|
||||
tocLinks[i].addEventListener('click', tocEntryClick, false);
|
||||
}
|
||||
|
||||
if (window.name == "hideTOC") {
|
||||
toggleTOC.call(tocButton);
|
||||
}
|
||||
}
|
||||
|
||||
window.onload = init;
|
||||
|
||||
// If showing in Xcode, hide the TOC and Header
|
||||
if (navigator.userAgent.match(/xcode/i)) {
|
||||
document.getElementById("contents").className = "hideInXcode"
|
||||
document.getElementById("tocContainer").className = "hideInXcode"
|
||||
document.getElementById("top_header").className = "hideInXcode"
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
-484
@@ -1,484 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="html/html; charset=utf-8" />
|
||||
<title>M13ProgressViewMetroDotPolygon Class Reference</title>
|
||||
<meta id="xcode-display" name="xcode-display" content="render"/>
|
||||
<link rel="stylesheet" type="text/css" href="../css/styles.css" media="all" />
|
||||
<link rel="stylesheet" type="text/css" media="print" href="../css/stylesPrint.css" />
|
||||
<meta name="generator" content="appledoc 2.2 (build 961)" />
|
||||
</head>
|
||||
<body>
|
||||
<header id="top_header">
|
||||
<div id="library" class="hideInXcode">
|
||||
<h1><a id="libraryTitle" href="../index.html">M13ProgressSuite </a></h1>
|
||||
<a id="developerHome" href="../index.html">Marxon13 Productions (Brandon McQuilkin)</a>
|
||||
</div>
|
||||
|
||||
<div id="title" role="banner">
|
||||
<h1 class="hideInXcode">M13ProgressViewMetroDotPolygon Class Reference</h1>
|
||||
</div>
|
||||
<ul id="headerButtons" role="toolbar">
|
||||
<li id="toc_button">
|
||||
<button aria-label="Show Table of Contents" role="checkbox" class="open" id="table_of_contents"><span class="disclosure"></span>Table of Contents</button>
|
||||
</li>
|
||||
<li id="jumpto_button" role="navigation">
|
||||
<select id="jumpTo">
|
||||
<option value="top">Jump To…</option>
|
||||
|
||||
<option value="overview">Overview</option>
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="tasks">Tasks</option>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="properties">Properties</option>
|
||||
|
||||
<option value="//api/name/numberOfSides"> numberOfSides</option>
|
||||
|
||||
<option value="//api/name/radius"> radius</option>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="instance_methods">Instance Methods</option>
|
||||
|
||||
<option value="//api/name/copy"> - copy</option>
|
||||
|
||||
<option value="//api/name/performAction:animated:"> - performAction:animated:</option>
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
</li>
|
||||
</ul>
|
||||
</header>
|
||||
<nav id="tocContainer" class="isShowingTOC">
|
||||
<ul id="toc" role="tree">
|
||||
|
||||
<li role="treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#overview">Overview</a></span></li>
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" id="task_treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#tasks">Tasks</a></span><ul>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#properties">Properties</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/numberOfSides">numberOfSides</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/radius">radius</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#instance_methods">Instance Methods</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/copy">copy</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/performAction:animated:">performAction:animated:</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<article>
|
||||
<div id="contents" class="isShowingTOC" role="main">
|
||||
<a title="M13ProgressViewMetroDotPolygon Class Reference" name="top"></a>
|
||||
<div class="main-navigation navigation-top">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="header">
|
||||
<div class="section-header">
|
||||
<h1 class="title title-header">M13ProgressViewMetroDotPolygon Class Reference</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div id="container">
|
||||
|
||||
<div class="section section-specification"><table cellspacing="0"><tbody>
|
||||
<tr>
|
||||
<td class="specification-title">Inherits from</td>
|
||||
<td class="specification-value"><a href="../Classes/M13ProgressViewMetroDot.html">M13ProgressViewMetroDot</a> : CALayer</td>
|
||||
</tr><tr>
|
||||
<td class="specification-title">Declared in</td>
|
||||
<td class="specification-value">M13ProgressViewMetroDotPolygon.h<br />M13ProgressViewMetroDotPolygon.m</td>
|
||||
</tr>
|
||||
</tbody></table></div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-overview">
|
||||
<a title="Overview" name="overview"></a>
|
||||
<h2 class="subtitle subtitle-overview">Overview</h2>
|
||||
<p>A subclass of <a href="../Classes/M13ProgressViewMetroDot.html">M13ProgressViewMetroDot</a>.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-tasks">
|
||||
<a title="Tasks" name="tasks"></a>
|
||||
<h2 class="subtitle subtitle-tasks">Tasks</h2>
|
||||
|
||||
|
||||
|
||||
<h3 class="subsubtitle task-title">Other Methods</h3>
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/numberOfSides"> numberOfSides</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/radius"> radius</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<h3 class="subsubtitle task-title">Other Methods</h3>
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/performAction:animated:">– performAction:animated:</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/copy">– copy</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Properties" name="properties"></a>
|
||||
<h2 class="subtitle subtitle-methods">Properties</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/numberOfSides" title="numberOfSides"></a>
|
||||
<h3 class="subsubtitle method-title">numberOfSides</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The number of sides the polygon has.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) NSUInteger numberOfSides</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection discussion-section">
|
||||
<h4 class="method-subtitle">Discussion</h4>
|
||||
<div class="note"><p><strong>Note:</strong> if set less than 3, the polygon will be a circle.</p></div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewMetroDotPolygon.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/radius" title="radius"></a>
|
||||
<h3 class="subsubtitle method-title">radius</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The radius of the polygon.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CGFloat radius</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewMetroDotPolygon.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Instance Methods" name="instance_methods"></a>
|
||||
<h2 class="subtitle subtitle-methods">Instance Methods</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/copy" title="copy"></a>
|
||||
<h3 class="subsubtitle method-title">copy</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>All subclasses must respond to NSCopying.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (id)copy</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewMetro.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/performAction:animated:" title="performAction:animated:"></a>
|
||||
<h3 class="subsubtitle method-title">performAction:animated:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Perform the given action if defined. Usually showing success or failure.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)performAction:(M13ProgressViewAction)<em>action</em> animated:(BOOL)<em>animated</em></code></div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection arguments-section parameters">
|
||||
<h4 class="method-subtitle parameter-title">Parameters</h4>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>action</em></dt>
|
||||
<dd><p>The action to perform.</p></dd>
|
||||
</dl>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>animated</em></dt>
|
||||
<dd><p>Wether or not to animate the change</p></dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewMetro.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="main-navigation navigation-bottom">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<hr />
|
||||
<div class="footer-copyright">
|
||||
<p><span class="copyright">© 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-05-12)</span><br />
|
||||
|
||||
<span class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2 (build 961)</a>.</span></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
<script type="text/javascript">
|
||||
function jumpToChange()
|
||||
{
|
||||
window.location.hash = this.options[this.selectedIndex].value;
|
||||
}
|
||||
|
||||
function toggleTOC()
|
||||
{
|
||||
var contents = document.getElementById('contents');
|
||||
var tocContainer = document.getElementById('tocContainer');
|
||||
|
||||
if (this.getAttribute('class') == 'open')
|
||||
{
|
||||
this.setAttribute('class', '');
|
||||
contents.setAttribute('class', '');
|
||||
tocContainer.setAttribute('class', '');
|
||||
|
||||
window.name = "hideTOC";
|
||||
}
|
||||
else
|
||||
{
|
||||
this.setAttribute('class', 'open');
|
||||
contents.setAttribute('class', 'isShowingTOC');
|
||||
tocContainer.setAttribute('class', 'isShowingTOC');
|
||||
|
||||
window.name = "";
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function toggleTOCEntryChildren(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
var currentClass = this.getAttribute('class');
|
||||
if (currentClass == 'children') {
|
||||
this.setAttribute('class', 'children open');
|
||||
}
|
||||
else if (currentClass == 'children open') {
|
||||
this.setAttribute('class', 'children');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function tocEntryClick(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
return true;
|
||||
}
|
||||
|
||||
function init()
|
||||
{
|
||||
var selectElement = document.getElementById('jumpTo');
|
||||
selectElement.addEventListener('change', jumpToChange, false);
|
||||
|
||||
var tocButton = document.getElementById('table_of_contents');
|
||||
tocButton.addEventListener('click', toggleTOC, false);
|
||||
|
||||
var taskTreeItem = document.getElementById('task_treeitem');
|
||||
if (taskTreeItem.getElementsByTagName('li').length > 0)
|
||||
{
|
||||
taskTreeItem.setAttribute('class', 'children');
|
||||
taskTreeItem.firstChild.setAttribute('class', 'disclosure');
|
||||
}
|
||||
|
||||
var tocList = document.getElementById('toc');
|
||||
|
||||
var tocEntries = tocList.getElementsByTagName('li');
|
||||
for (var i = 0; i < tocEntries.length; i++) {
|
||||
tocEntries[i].addEventListener('click', toggleTOCEntryChildren, false);
|
||||
}
|
||||
|
||||
var tocLinks = tocList.getElementsByTagName('a');
|
||||
for (var i = 0; i < tocLinks.length; i++) {
|
||||
tocLinks[i].addEventListener('click', tocEntryClick, false);
|
||||
}
|
||||
|
||||
if (window.name == "hideTOC") {
|
||||
toggleTOC.call(tocButton);
|
||||
}
|
||||
}
|
||||
|
||||
window.onload = init;
|
||||
|
||||
// If showing in Xcode, hide the TOC and Header
|
||||
if (navigator.userAgent.match(/xcode/i)) {
|
||||
document.getElementById("contents").className = "hideInXcode"
|
||||
document.getElementById("tocContainer").className = "hideInXcode"
|
||||
document.getElementById("top_header").className = "hideInXcode"
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load Diff
-997
@@ -1,997 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="html/html; charset=utf-8" />
|
||||
<title>M13ProgressViewRadiative Class Reference</title>
|
||||
<meta id="xcode-display" name="xcode-display" content="render"/>
|
||||
<link rel="stylesheet" type="text/css" href="../css/styles.css" media="all" />
|
||||
<link rel="stylesheet" type="text/css" media="print" href="../css/stylesPrint.css" />
|
||||
<meta name="generator" content="appledoc 2.2 (build 961)" />
|
||||
</head>
|
||||
<body>
|
||||
<header id="top_header">
|
||||
<div id="library" class="hideInXcode">
|
||||
<h1><a id="libraryTitle" href="../index.html">M13ProgressSuite </a></h1>
|
||||
<a id="developerHome" href="../index.html">Marxon13 Productions (Brandon McQuilkin)</a>
|
||||
</div>
|
||||
|
||||
<div id="title" role="banner">
|
||||
<h1 class="hideInXcode">M13ProgressViewRadiative Class Reference</h1>
|
||||
</div>
|
||||
<ul id="headerButtons" role="toolbar">
|
||||
<li id="toc_button">
|
||||
<button aria-label="Show Table of Contents" role="checkbox" class="open" id="table_of_contents"><span class="disclosure"></span>Table of Contents</button>
|
||||
</li>
|
||||
<li id="jumpto_button" role="navigation">
|
||||
<select id="jumpTo">
|
||||
<option value="top">Jump To…</option>
|
||||
|
||||
<option value="overview">Overview</option>
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="tasks">Tasks</option>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="properties">Properties</option>
|
||||
|
||||
<option value="//api/name/animationFromValue"> animationFromValue</option>
|
||||
|
||||
<option value="//api/name/animationStartTime"> animationStartTime</option>
|
||||
|
||||
<option value="//api/name/animationToValue"> animationToValue</option>
|
||||
|
||||
<option value="//api/name/displayLink"> displayLink</option>
|
||||
|
||||
<option value="//api/name/numberOfRipples"> numberOfRipples</option>
|
||||
|
||||
<option value="//api/name/originationPoint"> originationPoint</option>
|
||||
|
||||
<option value="//api/name/progressOutwards"> progressOutwards</option>
|
||||
|
||||
<option value="//api/name/pulseWidth"> pulseWidth</option>
|
||||
|
||||
<option value="//api/name/rippleWidth"> rippleWidth</option>
|
||||
|
||||
<option value="//api/name/ripplesRadius"> ripplesRadius</option>
|
||||
|
||||
<option value="//api/name/shape"> shape</option>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="instance_methods">Instance Methods</option>
|
||||
|
||||
<option value="//api/name/setIndeterminate:"> - setIndeterminate:</option>
|
||||
|
||||
<option value="//api/name/setPrimaryColor:"> - setPrimaryColor:</option>
|
||||
|
||||
<option value="//api/name/setProgress:animated:"> - setProgress:animated:</option>
|
||||
|
||||
<option value="//api/name/setSecondaryColor:"> - setSecondaryColor:</option>
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
</li>
|
||||
</ul>
|
||||
</header>
|
||||
<nav id="tocContainer" class="isShowingTOC">
|
||||
<ul id="toc" role="tree">
|
||||
|
||||
<li role="treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#overview">Overview</a></span></li>
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" id="task_treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#tasks">Tasks</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#task_Appearance">Appearance</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#task_Extension Methods">Extension Methods</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#properties">Properties</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/animationFromValue">animationFromValue</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/animationStartTime">animationStartTime</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/animationToValue">animationToValue</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/displayLink">displayLink</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/numberOfRipples">numberOfRipples</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/originationPoint">originationPoint</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/progressOutwards">progressOutwards</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/pulseWidth">pulseWidth</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/rippleWidth">rippleWidth</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/ripplesRadius">ripplesRadius</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/shape">shape</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#instance_methods">Instance Methods</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setIndeterminate:">setIndeterminate:</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setPrimaryColor:">setPrimaryColor:</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setProgress:animated:">setProgress:animated:</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/setSecondaryColor:">setSecondaryColor:</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<article>
|
||||
<div id="contents" class="isShowingTOC" role="main">
|
||||
<a title="M13ProgressViewRadiative Class Reference" name="top"></a>
|
||||
<div class="main-navigation navigation-top">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="header">
|
||||
<div class="section-header">
|
||||
<h1 class="title title-header">M13ProgressViewRadiative Class Reference</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div id="container">
|
||||
|
||||
<div class="section section-specification"><table cellspacing="0"><tbody>
|
||||
<tr>
|
||||
<td class="specification-title">Inherits from</td>
|
||||
<td class="specification-value"><a href="../Classes/M13ProgressView.html">M13ProgressView</a> : UIView</td>
|
||||
</tr><tr>
|
||||
<td class="specification-title">Declared in</td>
|
||||
<td class="specification-value">M13ProgressViewRadiative.h<br />M13ProgressViewRadiative.m</td>
|
||||
</tr>
|
||||
</tbody></table></div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-overview">
|
||||
<a title="Overview" name="overview"></a>
|
||||
<h2 class="subtitle subtitle-overview">Overview</h2>
|
||||
<p>A progress view that displays progress via “Radiative” rings around a central point.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-tasks">
|
||||
<a title="Tasks" name="tasks"></a>
|
||||
<h2 class="subtitle subtitle-tasks">Tasks</h2>
|
||||
|
||||
|
||||
<a title="Appearance" name="task_Appearance"></a>
|
||||
<h3 class="subsubtitle task-title">Appearance</h3>
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/originationPoint"> originationPoint</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/ripplesRadius"> ripplesRadius</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/rippleWidth"> rippleWidth</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/shape"> shape</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/numberOfRipples"> numberOfRipples</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/pulseWidth"> pulseWidth</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/progressOutwards"> progressOutwards</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<h3 class="subsubtitle task-title">Other Methods</h3>
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/setPrimaryColor:">– setPrimaryColor:</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/setSecondaryColor:">– setSecondaryColor:</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/setProgress:animated:">– setProgress:animated:</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/setIndeterminate:">– setIndeterminate:</a></code>
|
||||
</span>
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<a title="Extension Methods" name="task_Extension Methods"></a>
|
||||
<h3 class="subsubtitle task-title">Extension Methods</h3>
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/animationFromValue"> animationFromValue</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/animationToValue"> animationToValue</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/animationStartTime"> animationStartTime</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/displayLink"> displayLink</a></code>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Properties" name="properties"></a>
|
||||
<h2 class="subtitle subtitle-methods">Properties</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/animationFromValue" title="animationFromValue"></a>
|
||||
<h3 class="subsubtitle method-title">animationFromValue</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The start progress for the progress animation.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CGFloat animationFromValue</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewRadiative.m</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/animationStartTime" title="animationStartTime"></a>
|
||||
<h3 class="subsubtitle method-title">animationStartTime</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The start time interval for the animaiton.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CFTimeInterval animationStartTime</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewRadiative.m</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/animationToValue" title="animationToValue"></a>
|
||||
<h3 class="subsubtitle method-title">animationToValue</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The end progress for the progress animation.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CGFloat animationToValue</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewRadiative.m</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/displayLink" title="displayLink"></a>
|
||||
<h3 class="subsubtitle method-title">displayLink</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Link to the display to keep animations in sync.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, strong) CADisplayLink *displayLink</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewRadiative.m</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/numberOfRipples" title="numberOfRipples"></a>
|
||||
<h3 class="subsubtitle method-title">numberOfRipples</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The number of ripples the progress view displays.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) NSUInteger numberOfRipples</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewRadiative.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/originationPoint" title="originationPoint"></a>
|
||||
<h3 class="subsubtitle method-title">originationPoint</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The point where the wave fronts originate from. The point is defined in percentages, top left being {0, 0}, and the bottom right being {1, 1}.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CGPoint originationPoint</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewRadiative.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/progressOutwards" title="progressOutwards"></a>
|
||||
<h3 class="subsubtitle method-title">progressOutwards</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The direction of the progress. If set to yes, the progress will be outward, of set to no, it will be inwards.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) BOOL progressOutwards</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewRadiative.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/pulseWidth" title="pulseWidth"></a>
|
||||
<h3 class="subsubtitle method-title">pulseWidth</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The number of ripples the indeterminate pulse animation is.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) NSUInteger pulseWidth</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewRadiative.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/rippleWidth" title="rippleWidth"></a>
|
||||
<h3 class="subsubtitle method-title">rippleWidth</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The width of the ripples.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CGFloat rippleWidth</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewRadiative.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/ripplesRadius" title="ripplesRadius"></a>
|
||||
<h3 class="subsubtitle method-title">ripplesRadius</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The distance of the last ripple from the origination point.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CGFloat ripplesRadius</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewRadiative.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/shape" title="shape"></a>
|
||||
<h3 class="subsubtitle method-title">shape</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The shape of the radiative ripples</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) M13ProgressViewRadiativeShape shape</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressViewRadiative.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Instance Methods" name="instance_methods"></a>
|
||||
<h2 class="subtitle subtitle-methods">Instance Methods</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/setIndeterminate:" title="setIndeterminate:"></a>
|
||||
<h3 class="subsubtitle method-title">setIndeterminate:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Wether or not the <a href="#//api/name/progress">progress</a> view is indeterminate.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)setIndeterminate:(BOOL)<em>indeterminate</em></code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressView.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/setPrimaryColor:" title="setPrimaryColor:"></a>
|
||||
<h3 class="subsubtitle method-title">setPrimaryColor:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The primary color of the <code>M13ProgressView</code>.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)setPrimaryColor:(UIColor *)<em>primaryColor</em></code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressView.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/setProgress:animated:" title="setProgress:animated:"></a>
|
||||
<h3 class="subsubtitle method-title">setProgress:animated:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Set the <a href="#//api/name/progress">progress</a> of the <code>M13ProgressView</code>.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)setProgress:(CGFloat)<em>progress</em> animated:(BOOL)<em>animated</em></code></div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection arguments-section parameters">
|
||||
<h4 class="method-subtitle parameter-title">Parameters</h4>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>progress</em></dt>
|
||||
<dd><p>The <a href="#//api/name/progress">progress</a> to show on the <a href="#//api/name/progress">progress</a> view.</p></dd>
|
||||
</dl>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>animated</em></dt>
|
||||
<dd><p>Wether or not to animate the <a href="#//api/name/progress">progress</a> change.</p></dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressView.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/setSecondaryColor:" title="setSecondaryColor:"></a>
|
||||
<h3 class="subsubtitle method-title">setSecondaryColor:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The secondary color of the <code>M13ProgressView</code>.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)setSecondaryColor:(UIColor *)<em>secondaryColor</em></code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">M13ProgressView.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="main-navigation navigation-bottom">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<hr />
|
||||
<div class="footer-copyright">
|
||||
<p><span class="copyright">© 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-05-12)</span><br />
|
||||
|
||||
<span class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2 (build 961)</a>.</span></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
<script type="text/javascript">
|
||||
function jumpToChange()
|
||||
{
|
||||
window.location.hash = this.options[this.selectedIndex].value;
|
||||
}
|
||||
|
||||
function toggleTOC()
|
||||
{
|
||||
var contents = document.getElementById('contents');
|
||||
var tocContainer = document.getElementById('tocContainer');
|
||||
|
||||
if (this.getAttribute('class') == 'open')
|
||||
{
|
||||
this.setAttribute('class', '');
|
||||
contents.setAttribute('class', '');
|
||||
tocContainer.setAttribute('class', '');
|
||||
|
||||
window.name = "hideTOC";
|
||||
}
|
||||
else
|
||||
{
|
||||
this.setAttribute('class', 'open');
|
||||
contents.setAttribute('class', 'isShowingTOC');
|
||||
tocContainer.setAttribute('class', 'isShowingTOC');
|
||||
|
||||
window.name = "";
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function toggleTOCEntryChildren(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
var currentClass = this.getAttribute('class');
|
||||
if (currentClass == 'children') {
|
||||
this.setAttribute('class', 'children open');
|
||||
}
|
||||
else if (currentClass == 'children open') {
|
||||
this.setAttribute('class', 'children');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function tocEntryClick(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
return true;
|
||||
}
|
||||
|
||||
function init()
|
||||
{
|
||||
var selectElement = document.getElementById('jumpTo');
|
||||
selectElement.addEventListener('change', jumpToChange, false);
|
||||
|
||||
var tocButton = document.getElementById('table_of_contents');
|
||||
tocButton.addEventListener('click', toggleTOC, false);
|
||||
|
||||
var taskTreeItem = document.getElementById('task_treeitem');
|
||||
if (taskTreeItem.getElementsByTagName('li').length > 0)
|
||||
{
|
||||
taskTreeItem.setAttribute('class', 'children');
|
||||
taskTreeItem.firstChild.setAttribute('class', 'disclosure');
|
||||
}
|
||||
|
||||
var tocList = document.getElementById('toc');
|
||||
|
||||
var tocEntries = tocList.getElementsByTagName('li');
|
||||
for (var i = 0; i < tocEntries.length; i++) {
|
||||
tocEntries[i].addEventListener('click', toggleTOCEntryChildren, false);
|
||||
}
|
||||
|
||||
var tocLinks = tocList.getElementsByTagName('a');
|
||||
for (var i = 0; i < tocLinks.length; i++) {
|
||||
tocLinks[i].addEventListener('click', tocEntryClick, false);
|
||||
}
|
||||
|
||||
if (window.name == "hideTOC") {
|
||||
toggleTOC.call(tocButton);
|
||||
}
|
||||
}
|
||||
|
||||
window.onload = init;
|
||||
|
||||
// If showing in Xcode, hide the TOC and Header
|
||||
if (navigator.userAgent.match(/xcode/i)) {
|
||||
document.getElementById("contents").className = "hideInXcode"
|
||||
document.getElementById("tocContainer").className = "hideInXcode"
|
||||
document.getElementById("top_header").className = "hideInXcode"
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load Diff
-1252
File diff suppressed because it is too large
Load Diff
-1298
File diff suppressed because it is too large
Load Diff
-1472
File diff suppressed because it is too large
Load Diff
@@ -1,615 +0,0 @@
|
||||
body {
|
||||
font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: Courier, Consolas, monospace;
|
||||
font-size: 13px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
pre {
|
||||
font-family: Courier, Consolas, monospace;
|
||||
font-size: 13px;
|
||||
line-height: 18px;
|
||||
tab-interval: 0.5em;
|
||||
border: 1px solid #C7CFD5;
|
||||
background-color: #F1F5F9;
|
||||
color: #666;
|
||||
padding: 0.3em 1em;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-type: square;
|
||||
}
|
||||
|
||||
li {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
a, a code {
|
||||
text-decoration: none;
|
||||
color: #36C;
|
||||
}
|
||||
|
||||
a:hover, a:hover code {
|
||||
text-decoration: underline;
|
||||
color: #36C;
|
||||
}
|
||||
|
||||
h2 {
|
||||
border-bottom: 1px solid #8391A8;
|
||||
color: #3C4C6C;
|
||||
font-size: 187%;
|
||||
font-weight: normal;
|
||||
margin-top: 1.75em;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
table {
|
||||
margin-bottom: 4em;
|
||||
border-collapse:collapse;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
td {
|
||||
border: 1px solid #9BB3CD;
|
||||
padding: .667em;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
th {
|
||||
border: 1px solid #9BB3CD;
|
||||
padding: .3em .667em .3em .667em;
|
||||
background: #93A5BB;
|
||||
font-size: 103%;
|
||||
font-weight: bold;
|
||||
color: white;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
/* @group Common page elements */
|
||||
|
||||
#top_header {
|
||||
height: 91px;
|
||||
left: 0;
|
||||
min-width: 598px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
z-index: 900;
|
||||
}
|
||||
|
||||
#footer {
|
||||
clear: both;
|
||||
padding-top: 20px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#contents, #overview_contents {
|
||||
-webkit-overflow-scrolling: touch;
|
||||
border-top: 1px solid #A9A9A9;
|
||||
position: absolute;
|
||||
top: 90px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
padding-left: 2em;
|
||||
padding-right: 2em;
|
||||
padding-top: 1em;
|
||||
min-width: 550px;
|
||||
}
|
||||
|
||||
#contents.isShowingTOC {
|
||||
left: 230px;
|
||||
min-width: 320px;
|
||||
}
|
||||
|
||||
.copyright {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.generator {
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.main-navigation ul li {
|
||||
display: inline;
|
||||
margin-left: 15px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.navigation-top {
|
||||
clear: both;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.navigation-bottom {
|
||||
clear: both;
|
||||
float: right;
|
||||
margin-top: 20px;
|
||||
margin-bottom: -10px;
|
||||
}
|
||||
|
||||
.open > .disclosure {
|
||||
background-image: url("../img/disclosure_open.png");
|
||||
}
|
||||
|
||||
.disclosure {
|
||||
background: url("../img/disclosure.png") no-repeat scroll 0 0;
|
||||
}
|
||||
|
||||
.disclosure, .nodisclosure {
|
||||
display: inline-block;
|
||||
height: 8px;
|
||||
margin-right: 5px;
|
||||
position: relative;
|
||||
width: 9px;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
/* @group Header */
|
||||
|
||||
#top_header #library {
|
||||
background: url("../img/library_background.png") repeat-x 0 0 #485E78;
|
||||
background-color: #ccc;
|
||||
height: 35px;
|
||||
font-size: 115%;
|
||||
}
|
||||
|
||||
#top_header #library #libraryTitle {
|
||||
color: #FFFFFF;
|
||||
margin-left: 15px;
|
||||
text-shadow: 0 -1px 0 #485E78;
|
||||
top: 8px;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
#libraryTitle {
|
||||
left: 0;
|
||||
}
|
||||
|
||||
#top_header #library #developerHome {
|
||||
color: #92979E;
|
||||
right: 15px;
|
||||
top: 8px;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
#top_header #library a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#top_header #title {
|
||||
background: url("../img/title_background.png") repeat-x 0 0 #8A98A9;
|
||||
border-bottom: 1px solid #757575;
|
||||
height: 25px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#top_header h1 {
|
||||
font-size: 105%;
|
||||
font-weight: normal;
|
||||
margin: 0;
|
||||
padding: 3px 0 2px;
|
||||
text-align: center;
|
||||
/*text-shadow: 0 1px 0 #D5D5D5;*/
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#headerButtons {
|
||||
background-color: #D8D8D8;
|
||||
background-image: url("../img/button_bar_background.png");
|
||||
border-bottom: 0px solid #EDEDED;
|
||||
border-top: 0px solid #a8a8a8;
|
||||
font-size: 8pt;
|
||||
height: 28px;
|
||||
left: 0;
|
||||
list-style: none outside none;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 61px;
|
||||
}
|
||||
|
||||
#headerButtons li {
|
||||
background-repeat: no-repeat;
|
||||
display: inline;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#toc_button button {
|
||||
background-color: #EBEEF1;
|
||||
border-color: #ACACAC;
|
||||
border-style: none solid none none;
|
||||
border-width: 0 1px 0 0;
|
||||
height: 28px;
|
||||
margin: 0;
|
||||
padding-left: 30px;
|
||||
text-align: left;
|
||||
width: 230px;
|
||||
}
|
||||
|
||||
li#jumpto_button {
|
||||
left: 230px;
|
||||
margin-left: 0;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
li#jumpto_button select {
|
||||
height: 22px;
|
||||
margin: 5px 2px 0 10px;
|
||||
max-width: 300px;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
/* @group Table of contents */
|
||||
|
||||
#tocContainer.isShowingTOC {
|
||||
border-right: 1px solid #ACACAC;
|
||||
display: block;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#tocContainer {
|
||||
background-color: #EBEEF1;
|
||||
border-top: 1px solid #ACACAC;
|
||||
bottom: 0;
|
||||
display: none;
|
||||
left: 0;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
top: 90px;
|
||||
width: 229px;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc {
|
||||
font-size: 11px;
|
||||
margin: 0;
|
||||
padding: 12px 0 18px;
|
||||
width: 209px;
|
||||
-moz-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc > li {
|
||||
margin: 0;
|
||||
padding: 0 0 7px 30px;
|
||||
text-indent: -15px;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc > li > .sectionName a {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc > li > .sectionName a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc li.children > ul {
|
||||
display: none;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc > li > ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc > li > ul, ul#toc > li > ul > li {
|
||||
margin-left: 0;
|
||||
margin-bottom: 0;
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc > li ul {
|
||||
list-style: none;
|
||||
margin-right: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc li.children.open > ul {
|
||||
display: block;
|
||||
height: auto;
|
||||
margin-left: -15px;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc > li > ul, ul#toc > li > ul > li {
|
||||
margin-left: 0;
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
#tocContainer li ul li {
|
||||
margin-top: 0.583em;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#tocContainer li ul li span.sectionName {
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc > li > ul > li > .sectionName a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc > li > ul a {
|
||||
color: #4F4F4F;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
/* @group Index formatting */
|
||||
|
||||
.index-title {
|
||||
font-size: 13px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.index-column {
|
||||
float: left;
|
||||
width: 30%;
|
||||
min-width: 200px;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.index-column ul {
|
||||
margin: 8px 0 0 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.index-column ul li {
|
||||
margin: 0 0 3px 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.hierarchy-column {
|
||||
min-width: 400px;
|
||||
}
|
||||
|
||||
.hierarchy-column ul {
|
||||
margin: 3px 0 0 15px;
|
||||
}
|
||||
|
||||
.hierarchy-column ul li {
|
||||
list-style-type: square;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
/* @group Common formatting elements */
|
||||
|
||||
.title {
|
||||
font-weight: normal;
|
||||
font-size: 215%;
|
||||
margin-top:0;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
font-weight: normal;
|
||||
font-size: 180%;
|
||||
color: #3C4C6C;
|
||||
border-bottom: 1px solid #5088C5;
|
||||
}
|
||||
|
||||
.subsubtitle {
|
||||
font-weight: normal;
|
||||
font-size: 145%;
|
||||
height: 0.7em;
|
||||
}
|
||||
|
||||
.note {
|
||||
border: 1px solid #5088C5;
|
||||
background-color: white;
|
||||
margin: 1.667em 0 1.75em 0;
|
||||
padding: 0 .667em .083em .750em;
|
||||
}
|
||||
|
||||
.warning {
|
||||
border: 1px solid #5088C5;
|
||||
background-color: #F0F3F7;
|
||||
margin-bottom: 0.5em;
|
||||
padding: 0.3em 0.8em;
|
||||
}
|
||||
|
||||
.bug {
|
||||
border: 1px solid #000;
|
||||
background-color: #ffffcc;
|
||||
margin-bottom: 0.5em;
|
||||
padding: 0.3em 0.8em;
|
||||
}
|
||||
|
||||
.deprecated {
|
||||
color: #F60425;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
/* @group Common layout */
|
||||
|
||||
.section {
|
||||
margin-top: 3em;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
/* @group Object specification section */
|
||||
|
||||
.section-specification {
|
||||
margin-left: 2.5em;
|
||||
margin-right: 2.5em;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.section-specification table {
|
||||
margin-bottom: 0em;
|
||||
border-top: 1px solid #d6e0e5;
|
||||
}
|
||||
|
||||
.section-specification td {
|
||||
vertical-align: top;
|
||||
border-bottom: 1px solid #d6e0e5;
|
||||
border-left-width: 0px;
|
||||
border-right-width: 0px;
|
||||
border-top-width: 0px;
|
||||
padding: .6em;
|
||||
}
|
||||
|
||||
.section-specification .specification-title {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
/* @group Tasks section */
|
||||
|
||||
.task-list {
|
||||
list-style-type: none;
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.task-list li {
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
.task-item-suffix {
|
||||
color: #996;
|
||||
font-size: 12px;
|
||||
font-style: italic;
|
||||
margin-left: 0.5em;
|
||||
}
|
||||
|
||||
span.tooltip span.tooltip {
|
||||
font-size: 1.0em;
|
||||
display: none;
|
||||
padding: 0.3em;
|
||||
border: 1px solid #aaa;
|
||||
background-color: #fdfec8;
|
||||
color: #000;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
span.tooltip:hover span.tooltip {
|
||||
display: block;
|
||||
position: absolute;
|
||||
margin-left: 2em;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
/* @group Method section */
|
||||
|
||||
.section-method {
|
||||
margin-top: 2.3em;
|
||||
}
|
||||
|
||||
.method-title {
|
||||
margin-bottom: 1.5em;
|
||||
}
|
||||
|
||||
.method-subtitle {
|
||||
margin-top: 0.7em;
|
||||
margin-bottom: 0.2em;
|
||||
}
|
||||
|
||||
.method-subsection p {
|
||||
margin-top: 0.4em;
|
||||
margin-bottom: 0.8em;
|
||||
}
|
||||
|
||||
.method-declaration {
|
||||
margin-top:1.182em;
|
||||
margin-bottom:.909em;
|
||||
}
|
||||
|
||||
.method-declaration code {
|
||||
font:14px Courier, Consolas, monospace;
|
||||
color:#000;
|
||||
}
|
||||
|
||||
.declaration {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.termdef {
|
||||
margin-bottom: 10px;
|
||||
margin-left: 0px;
|
||||
margin-right: 0px;
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
.termdef dt {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.termdef dd {
|
||||
margin-bottom: 6px;
|
||||
margin-left: 16px;
|
||||
margin-right: 0px;
|
||||
margin-top: 1px;
|
||||
}
|
||||
|
||||
.termdef dd p {
|
||||
margin-bottom: 6px;
|
||||
margin-left: 0px;
|
||||
margin-right: 0px;
|
||||
margin-top: -1px;
|
||||
}
|
||||
|
||||
.argument-def {
|
||||
margin-top: 0.3em;
|
||||
margin-bottom: 0.3em;
|
||||
}
|
||||
|
||||
.argument-def dd {
|
||||
margin-left: 1.25em;
|
||||
}
|
||||
|
||||
.see-also-section ul {
|
||||
list-style-type: none;
|
||||
padding-left: 0px;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.see-also-section li {
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
.declared-in-ref {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
#tocContainer.hideInXcode {
|
||||
display: none;
|
||||
border: 0px solid black;
|
||||
}
|
||||
|
||||
#top_header.hideInXcode {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#contents.hideInXcode {
|
||||
border: 0px solid black;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
|
||||
header {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div.main-navigation, div.navigation-top {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div#overview_contents, div#contents.isShowingTOC, div#contents {
|
||||
overflow: visible;
|
||||
position: relative;
|
||||
top: 0px;
|
||||
border: none;
|
||||
left: 0;
|
||||
}
|
||||
#tocContainer.isShowingTOC {
|
||||
display: none;
|
||||
}
|
||||
nav {
|
||||
display: none;
|
||||
}
|
||||
@@ -1,135 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>M13ProgressSuite Hierarchy</title>
|
||||
<link rel="stylesheet" type="text/css" href="css/styles.css" media="all" />
|
||||
<link rel="stylesheet" type="text/css" media="print" href="css/stylesPrint.css" />
|
||||
<meta name="generator" content="appledoc 2.2 (build 961)" />
|
||||
</head>
|
||||
<body>
|
||||
<header id="top_header">
|
||||
<div id="library" class="hideInXcode">
|
||||
<h1><a id="libraryTitle" href="index.html">M13ProgressSuite </a></h1>
|
||||
<a id="developerHome" href="index.html">Marxon13 Productions (Brandon McQuilkin)</a>
|
||||
</div>
|
||||
|
||||
<div id="title" role="banner">
|
||||
<h1 class="hideInXcode">M13ProgressSuite Hierarchy</h1>
|
||||
</div>
|
||||
<ul id="headerButtons" role="toolbar"></ul>
|
||||
</header>
|
||||
<article>
|
||||
<div id="overview_contents" role="main">
|
||||
<div class="main-navigation navigation-top">
|
||||
<a href="index.html">Previous</a>
|
||||
</div>
|
||||
<div id="header">
|
||||
<div class="section-header">
|
||||
<h1 class="title title-header">M13ProgressSuite Hierarchy</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div id="container">
|
||||
|
||||
<div class="index-column hierarchy-column">
|
||||
<h2 class="index-title">Class Hierarchy</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>CALayer
|
||||
<ul>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewMetroDot.html">M13ProgressViewMetroDot</a>
|
||||
<ul>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewMetroDotPolygon.html">M13ProgressViewMetroDotPolygon</a></li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>UITextView
|
||||
<ul>
|
||||
|
||||
<li><a href="Classes/M13ProgressConsole.html">M13ProgressConsole</a></li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>UIView
|
||||
<ul>
|
||||
|
||||
<li><a href="Classes/M13ProgressHUD.html">M13ProgressHUD</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressView.html">M13ProgressView</a>
|
||||
<ul>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewBar.html">M13ProgressViewBar</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewBorderedBar.html">M13ProgressViewBorderedBar</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewFilteredImage.html">M13ProgressViewFilteredImage</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewImage.html">M13ProgressViewImage</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewLetterpress.html">M13ProgressViewLetterpress</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewMetro.html">M13ProgressViewMetro</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewPie.html">M13ProgressViewPie</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewRadiative.html">M13ProgressViewRadiative</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewRing.html">M13ProgressViewRing</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewSegmentedBar.html">M13ProgressViewSegmentedBar</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewSegmentedRing.html">M13ProgressViewSegmentedRing</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewStripedBar.html">M13ProgressViewStripedBar</a></li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="index-column">
|
||||
|
||||
|
||||
|
||||
<h2 class="index-title">Category References</h2>
|
||||
<ul>
|
||||
|
||||
<li><a href="Categories/UINavigationController+M13ProgressViewBar.html">UINavigationController(M13ProgressViewBar)</a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="main-navigation navigation-bottom">
|
||||
<a href="index.html">Previous</a>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<hr />
|
||||
<div class="footer-copyright">
|
||||
<p><span class="copyright">© 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-05-12)</span><br />
|
||||
|
||||
<span class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2 (build 961)</a>.</span></p>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.8 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 115 B |
Binary file not shown.
|
Before Width: | Height: | Size: 131 B |
Binary file not shown.
|
Before Width: | Height: | Size: 183 B |
Binary file not shown.
|
Before Width: | Height: | Size: 177 B |
@@ -1,111 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>M13ProgressSuite Reference</title>
|
||||
<link rel="stylesheet" type="text/css" href="css/styles.css" media="all" />
|
||||
<link rel="stylesheet" type="text/css" media="print" href="css/stylesPrint.css" />
|
||||
<meta name="generator" content="appledoc 2.2 (build 961)" />
|
||||
</head>
|
||||
<body>
|
||||
<header id="top_header">
|
||||
<div id="library" class="hideInXcode">
|
||||
<h1><a id="libraryTitle" href="index.html">M13ProgressSuite </a></h1>
|
||||
<a id="developerHome" href="index.html">Marxon13 Productions (Brandon McQuilkin)</a>
|
||||
</div>
|
||||
|
||||
<div id="title" role="banner">
|
||||
<h1 class="hideInXcode">M13ProgressSuite Reference</h1>
|
||||
</div>
|
||||
<ul id="headerButtons" role="toolbar"></ul>
|
||||
</header>
|
||||
<article>
|
||||
<div id="overview_contents" role="main">
|
||||
<div class="main-navigation navigation-top">
|
||||
<a href="hierarchy.html">Next</a>
|
||||
</div>
|
||||
<div id="header">
|
||||
<div class="section-header">
|
||||
<h1 class="title title-header">M13ProgressSuite Reference</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div id="container">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="index-column">
|
||||
<h2 class="index-title">Class References</h2>
|
||||
<ul>
|
||||
|
||||
<li><a href="Classes/M13ProgressConsole.html">M13ProgressConsole</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressHUD.html">M13ProgressHUD</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressView.html">M13ProgressView</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewBar.html">M13ProgressViewBar</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewBorderedBar.html">M13ProgressViewBorderedBar</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewFilteredImage.html">M13ProgressViewFilteredImage</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewImage.html">M13ProgressViewImage</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewLetterpress.html">M13ProgressViewLetterpress</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewMetro.html">M13ProgressViewMetro</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewMetroDot.html">M13ProgressViewMetroDot</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewMetroDotPolygon.html">M13ProgressViewMetroDotPolygon</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewPie.html">M13ProgressViewPie</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewRadiative.html">M13ProgressViewRadiative</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewRing.html">M13ProgressViewRing</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewSegmentedBar.html">M13ProgressViewSegmentedBar</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewSegmentedRing.html">M13ProgressViewSegmentedRing</a></li>
|
||||
|
||||
<li><a href="Classes/M13ProgressViewStripedBar.html">M13ProgressViewStripedBar</a></li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="index-column">
|
||||
|
||||
|
||||
|
||||
<h2 class="index-title">Category References</h2>
|
||||
<ul>
|
||||
|
||||
<li><a href="Categories/UINavigationController+M13ProgressViewBar.html">UINavigationController(M13ProgressViewBar)</a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="main-navigation navigation-bottom">
|
||||
<a href="hierarchy.html">Next</a>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<hr />
|
||||
<div class="footer-copyright">
|
||||
<p><span class="copyright">© 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-05-12)</span><br />
|
||||
|
||||
<span class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2 (build 961)</a>.</span></p>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,645 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DocSetNodes version="1.0">
|
||||
<TOC>
|
||||
<Node type="folder">
|
||||
<Name>M13ProgressSuite</Name>
|
||||
<Path>index.html</Path>
|
||||
<Subnodes>
|
||||
|
||||
|
||||
<Node type="folder">
|
||||
<Name>Classes</Name>
|
||||
<Path>index.html</Path>
|
||||
<Subnodes>
|
||||
<NodeRef refid="1"/>
|
||||
<NodeRef refid="2"/>
|
||||
<NodeRef refid="3"/>
|
||||
<NodeRef refid="4"/>
|
||||
<NodeRef refid="5"/>
|
||||
<NodeRef refid="6"/>
|
||||
<NodeRef refid="7"/>
|
||||
<NodeRef refid="8"/>
|
||||
<NodeRef refid="9"/>
|
||||
<NodeRef refid="10"/>
|
||||
<NodeRef refid="11"/>
|
||||
<NodeRef refid="12"/>
|
||||
<NodeRef refid="13"/>
|
||||
<NodeRef refid="14"/>
|
||||
<NodeRef refid="15"/>
|
||||
<NodeRef refid="16"/>
|
||||
<NodeRef refid="17"/>
|
||||
|
||||
</Subnodes>
|
||||
</Node>
|
||||
|
||||
|
||||
<Node>
|
||||
<Name>Categories</Name>
|
||||
<Path>index.html</Path>
|
||||
<Subnodes>
|
||||
<NodeRef refid="18"/>
|
||||
|
||||
</Subnodes>
|
||||
</Node>
|
||||
|
||||
|
||||
|
||||
</Subnodes>
|
||||
</Node>
|
||||
</TOC>
|
||||
<Library>
|
||||
|
||||
<Node id="1" type="file" documentType="reference">
|
||||
<Name>M13ProgressConsole</Name>
|
||||
<Path>Classes/M13ProgressConsole.html</Path>
|
||||
|
||||
<Subnodes>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressConsole.html</Path>
|
||||
<Name>Overview</Name>
|
||||
<Anchor>overview</Anchor>
|
||||
</Node>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressConsole.html</Path>
|
||||
<Name>Tasks</Name>
|
||||
<Anchor>tasks</Anchor>
|
||||
</Node>
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressConsole.html</Path>
|
||||
<Name>Properties</Name>
|
||||
<Anchor>properties</Anchor>
|
||||
</Node>
|
||||
|
||||
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressConsole.html</Path>
|
||||
<Name>Instance Methods</Name>
|
||||
<Anchor>instance_methods</Anchor>
|
||||
</Node>
|
||||
|
||||
</Subnodes>
|
||||
|
||||
</Node>
|
||||
<Node id="2" type="file" documentType="reference">
|
||||
<Name>M13ProgressHUD</Name>
|
||||
<Path>Classes/M13ProgressHUD.html</Path>
|
||||
|
||||
<Subnodes>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressHUD.html</Path>
|
||||
<Name>Overview</Name>
|
||||
<Anchor>overview</Anchor>
|
||||
</Node>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressHUD.html</Path>
|
||||
<Name>Tasks</Name>
|
||||
<Anchor>tasks</Anchor>
|
||||
</Node>
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressHUD.html</Path>
|
||||
<Name>Properties</Name>
|
||||
<Anchor>properties</Anchor>
|
||||
</Node>
|
||||
|
||||
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressHUD.html</Path>
|
||||
<Name>Instance Methods</Name>
|
||||
<Anchor>instance_methods</Anchor>
|
||||
</Node>
|
||||
|
||||
</Subnodes>
|
||||
|
||||
</Node>
|
||||
<Node id="3" type="file" documentType="reference">
|
||||
<Name>M13ProgressView</Name>
|
||||
<Path>Classes/M13ProgressView.html</Path>
|
||||
|
||||
<Subnodes>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressView.html</Path>
|
||||
<Name>Overview</Name>
|
||||
<Anchor>overview</Anchor>
|
||||
</Node>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressView.html</Path>
|
||||
<Name>Tasks</Name>
|
||||
<Anchor>tasks</Anchor>
|
||||
</Node>
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressView.html</Path>
|
||||
<Name>Properties</Name>
|
||||
<Anchor>properties</Anchor>
|
||||
</Node>
|
||||
|
||||
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressView.html</Path>
|
||||
<Name>Instance Methods</Name>
|
||||
<Anchor>instance_methods</Anchor>
|
||||
</Node>
|
||||
|
||||
</Subnodes>
|
||||
|
||||
</Node>
|
||||
<Node id="4" type="file" documentType="reference">
|
||||
<Name>M13ProgressViewBar</Name>
|
||||
<Path>Classes/M13ProgressViewBar.html</Path>
|
||||
|
||||
<Subnodes>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewBar.html</Path>
|
||||
<Name>Overview</Name>
|
||||
<Anchor>overview</Anchor>
|
||||
</Node>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewBar.html</Path>
|
||||
<Name>Tasks</Name>
|
||||
<Anchor>tasks</Anchor>
|
||||
</Node>
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewBar.html</Path>
|
||||
<Name>Properties</Name>
|
||||
<Anchor>properties</Anchor>
|
||||
</Node>
|
||||
|
||||
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewBar.html</Path>
|
||||
<Name>Instance Methods</Name>
|
||||
<Anchor>instance_methods</Anchor>
|
||||
</Node>
|
||||
|
||||
</Subnodes>
|
||||
|
||||
</Node>
|
||||
<Node id="5" type="file" documentType="reference">
|
||||
<Name>M13ProgressViewBorderedBar</Name>
|
||||
<Path>Classes/M13ProgressViewBorderedBar.html</Path>
|
||||
|
||||
<Subnodes>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewBorderedBar.html</Path>
|
||||
<Name>Overview</Name>
|
||||
<Anchor>overview</Anchor>
|
||||
</Node>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewBorderedBar.html</Path>
|
||||
<Name>Tasks</Name>
|
||||
<Anchor>tasks</Anchor>
|
||||
</Node>
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewBorderedBar.html</Path>
|
||||
<Name>Properties</Name>
|
||||
<Anchor>properties</Anchor>
|
||||
</Node>
|
||||
|
||||
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewBorderedBar.html</Path>
|
||||
<Name>Instance Methods</Name>
|
||||
<Anchor>instance_methods</Anchor>
|
||||
</Node>
|
||||
|
||||
</Subnodes>
|
||||
|
||||
</Node>
|
||||
<Node id="6" type="file" documentType="reference">
|
||||
<Name>M13ProgressViewFilteredImage</Name>
|
||||
<Path>Classes/M13ProgressViewFilteredImage.html</Path>
|
||||
|
||||
<Subnodes>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewFilteredImage.html</Path>
|
||||
<Name>Overview</Name>
|
||||
<Anchor>overview</Anchor>
|
||||
</Node>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewFilteredImage.html</Path>
|
||||
<Name>Tasks</Name>
|
||||
<Anchor>tasks</Anchor>
|
||||
</Node>
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewFilteredImage.html</Path>
|
||||
<Name>Properties</Name>
|
||||
<Anchor>properties</Anchor>
|
||||
</Node>
|
||||
|
||||
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewFilteredImage.html</Path>
|
||||
<Name>Instance Methods</Name>
|
||||
<Anchor>instance_methods</Anchor>
|
||||
</Node>
|
||||
|
||||
</Subnodes>
|
||||
|
||||
</Node>
|
||||
<Node id="7" type="file" documentType="reference">
|
||||
<Name>M13ProgressViewImage</Name>
|
||||
<Path>Classes/M13ProgressViewImage.html</Path>
|
||||
|
||||
<Subnodes>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewImage.html</Path>
|
||||
<Name>Overview</Name>
|
||||
<Anchor>overview</Anchor>
|
||||
</Node>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewImage.html</Path>
|
||||
<Name>Tasks</Name>
|
||||
<Anchor>tasks</Anchor>
|
||||
</Node>
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewImage.html</Path>
|
||||
<Name>Properties</Name>
|
||||
<Anchor>properties</Anchor>
|
||||
</Node>
|
||||
|
||||
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewImage.html</Path>
|
||||
<Name>Instance Methods</Name>
|
||||
<Anchor>instance_methods</Anchor>
|
||||
</Node>
|
||||
|
||||
</Subnodes>
|
||||
|
||||
</Node>
|
||||
<Node id="8" type="file" documentType="reference">
|
||||
<Name>M13ProgressViewLetterpress</Name>
|
||||
<Path>Classes/M13ProgressViewLetterpress.html</Path>
|
||||
|
||||
<Subnodes>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewLetterpress.html</Path>
|
||||
<Name>Overview</Name>
|
||||
<Anchor>overview</Anchor>
|
||||
</Node>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewLetterpress.html</Path>
|
||||
<Name>Tasks</Name>
|
||||
<Anchor>tasks</Anchor>
|
||||
</Node>
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewLetterpress.html</Path>
|
||||
<Name>Properties</Name>
|
||||
<Anchor>properties</Anchor>
|
||||
</Node>
|
||||
|
||||
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewLetterpress.html</Path>
|
||||
<Name>Instance Methods</Name>
|
||||
<Anchor>instance_methods</Anchor>
|
||||
</Node>
|
||||
|
||||
</Subnodes>
|
||||
|
||||
</Node>
|
||||
<Node id="9" type="file" documentType="reference">
|
||||
<Name>M13ProgressViewMetro</Name>
|
||||
<Path>Classes/M13ProgressViewMetro.html</Path>
|
||||
|
||||
<Subnodes>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewMetro.html</Path>
|
||||
<Name>Overview</Name>
|
||||
<Anchor>overview</Anchor>
|
||||
</Node>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewMetro.html</Path>
|
||||
<Name>Tasks</Name>
|
||||
<Anchor>tasks</Anchor>
|
||||
</Node>
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewMetro.html</Path>
|
||||
<Name>Properties</Name>
|
||||
<Anchor>properties</Anchor>
|
||||
</Node>
|
||||
|
||||
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewMetro.html</Path>
|
||||
<Name>Instance Methods</Name>
|
||||
<Anchor>instance_methods</Anchor>
|
||||
</Node>
|
||||
|
||||
</Subnodes>
|
||||
|
||||
</Node>
|
||||
<Node id="10" type="file" documentType="reference">
|
||||
<Name>M13ProgressViewMetroDot</Name>
|
||||
<Path>Classes/M13ProgressViewMetroDot.html</Path>
|
||||
|
||||
<Subnodes>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewMetroDot.html</Path>
|
||||
<Name>Overview</Name>
|
||||
<Anchor>overview</Anchor>
|
||||
</Node>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewMetroDot.html</Path>
|
||||
<Name>Tasks</Name>
|
||||
<Anchor>tasks</Anchor>
|
||||
</Node>
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewMetroDot.html</Path>
|
||||
<Name>Properties</Name>
|
||||
<Anchor>properties</Anchor>
|
||||
</Node>
|
||||
|
||||
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewMetroDot.html</Path>
|
||||
<Name>Instance Methods</Name>
|
||||
<Anchor>instance_methods</Anchor>
|
||||
</Node>
|
||||
|
||||
</Subnodes>
|
||||
|
||||
</Node>
|
||||
<Node id="11" type="file" documentType="reference">
|
||||
<Name>M13ProgressViewMetroDotPolygon</Name>
|
||||
<Path>Classes/M13ProgressViewMetroDotPolygon.html</Path>
|
||||
|
||||
<Subnodes>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewMetroDotPolygon.html</Path>
|
||||
<Name>Overview</Name>
|
||||
<Anchor>overview</Anchor>
|
||||
</Node>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewMetroDotPolygon.html</Path>
|
||||
<Name>Tasks</Name>
|
||||
<Anchor>tasks</Anchor>
|
||||
</Node>
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewMetroDotPolygon.html</Path>
|
||||
<Name>Properties</Name>
|
||||
<Anchor>properties</Anchor>
|
||||
</Node>
|
||||
|
||||
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewMetroDotPolygon.html</Path>
|
||||
<Name>Instance Methods</Name>
|
||||
<Anchor>instance_methods</Anchor>
|
||||
</Node>
|
||||
|
||||
</Subnodes>
|
||||
|
||||
</Node>
|
||||
<Node id="12" type="file" documentType="reference">
|
||||
<Name>M13ProgressViewPie</Name>
|
||||
<Path>Classes/M13ProgressViewPie.html</Path>
|
||||
|
||||
<Subnodes>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewPie.html</Path>
|
||||
<Name>Overview</Name>
|
||||
<Anchor>overview</Anchor>
|
||||
</Node>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewPie.html</Path>
|
||||
<Name>Tasks</Name>
|
||||
<Anchor>tasks</Anchor>
|
||||
</Node>
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewPie.html</Path>
|
||||
<Name>Properties</Name>
|
||||
<Anchor>properties</Anchor>
|
||||
</Node>
|
||||
|
||||
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewPie.html</Path>
|
||||
<Name>Instance Methods</Name>
|
||||
<Anchor>instance_methods</Anchor>
|
||||
</Node>
|
||||
|
||||
</Subnodes>
|
||||
|
||||
</Node>
|
||||
<Node id="13" type="file" documentType="reference">
|
||||
<Name>M13ProgressViewRadiative</Name>
|
||||
<Path>Classes/M13ProgressViewRadiative.html</Path>
|
||||
|
||||
<Subnodes>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewRadiative.html</Path>
|
||||
<Name>Overview</Name>
|
||||
<Anchor>overview</Anchor>
|
||||
</Node>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewRadiative.html</Path>
|
||||
<Name>Tasks</Name>
|
||||
<Anchor>tasks</Anchor>
|
||||
</Node>
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewRadiative.html</Path>
|
||||
<Name>Properties</Name>
|
||||
<Anchor>properties</Anchor>
|
||||
</Node>
|
||||
|
||||
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewRadiative.html</Path>
|
||||
<Name>Instance Methods</Name>
|
||||
<Anchor>instance_methods</Anchor>
|
||||
</Node>
|
||||
|
||||
</Subnodes>
|
||||
|
||||
</Node>
|
||||
<Node id="14" type="file" documentType="reference">
|
||||
<Name>M13ProgressViewRing</Name>
|
||||
<Path>Classes/M13ProgressViewRing.html</Path>
|
||||
|
||||
<Subnodes>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewRing.html</Path>
|
||||
<Name>Overview</Name>
|
||||
<Anchor>overview</Anchor>
|
||||
</Node>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewRing.html</Path>
|
||||
<Name>Tasks</Name>
|
||||
<Anchor>tasks</Anchor>
|
||||
</Node>
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewRing.html</Path>
|
||||
<Name>Properties</Name>
|
||||
<Anchor>properties</Anchor>
|
||||
</Node>
|
||||
|
||||
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewRing.html</Path>
|
||||
<Name>Instance Methods</Name>
|
||||
<Anchor>instance_methods</Anchor>
|
||||
</Node>
|
||||
|
||||
</Subnodes>
|
||||
|
||||
</Node>
|
||||
<Node id="15" type="file" documentType="reference">
|
||||
<Name>M13ProgressViewSegmentedBar</Name>
|
||||
<Path>Classes/M13ProgressViewSegmentedBar.html</Path>
|
||||
|
||||
<Subnodes>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewSegmentedBar.html</Path>
|
||||
<Name>Overview</Name>
|
||||
<Anchor>overview</Anchor>
|
||||
</Node>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewSegmentedBar.html</Path>
|
||||
<Name>Tasks</Name>
|
||||
<Anchor>tasks</Anchor>
|
||||
</Node>
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewSegmentedBar.html</Path>
|
||||
<Name>Properties</Name>
|
||||
<Anchor>properties</Anchor>
|
||||
</Node>
|
||||
|
||||
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewSegmentedBar.html</Path>
|
||||
<Name>Instance Methods</Name>
|
||||
<Anchor>instance_methods</Anchor>
|
||||
</Node>
|
||||
|
||||
</Subnodes>
|
||||
|
||||
</Node>
|
||||
<Node id="16" type="file" documentType="reference">
|
||||
<Name>M13ProgressViewSegmentedRing</Name>
|
||||
<Path>Classes/M13ProgressViewSegmentedRing.html</Path>
|
||||
|
||||
<Subnodes>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewSegmentedRing.html</Path>
|
||||
<Name>Overview</Name>
|
||||
<Anchor>overview</Anchor>
|
||||
</Node>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewSegmentedRing.html</Path>
|
||||
<Name>Tasks</Name>
|
||||
<Anchor>tasks</Anchor>
|
||||
</Node>
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewSegmentedRing.html</Path>
|
||||
<Name>Properties</Name>
|
||||
<Anchor>properties</Anchor>
|
||||
</Node>
|
||||
|
||||
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewSegmentedRing.html</Path>
|
||||
<Name>Instance Methods</Name>
|
||||
<Anchor>instance_methods</Anchor>
|
||||
</Node>
|
||||
|
||||
</Subnodes>
|
||||
|
||||
</Node>
|
||||
<Node id="17" type="file" documentType="reference">
|
||||
<Name>M13ProgressViewStripedBar</Name>
|
||||
<Path>Classes/M13ProgressViewStripedBar.html</Path>
|
||||
|
||||
<Subnodes>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewStripedBar.html</Path>
|
||||
<Name>Overview</Name>
|
||||
<Anchor>overview</Anchor>
|
||||
</Node>
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewStripedBar.html</Path>
|
||||
<Name>Tasks</Name>
|
||||
<Anchor>tasks</Anchor>
|
||||
</Node>
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewStripedBar.html</Path>
|
||||
<Name>Properties</Name>
|
||||
<Anchor>properties</Anchor>
|
||||
</Node>
|
||||
|
||||
|
||||
|
||||
<Node type="section">
|
||||
<Path>Classes/M13ProgressViewStripedBar.html</Path>
|
||||
<Name>Instance Methods</Name>
|
||||
<Anchor>instance_methods</Anchor>
|
||||
</Node>
|
||||
|
||||
</Subnodes>
|
||||
|
||||
</Node>
|
||||
|
||||
<Node id="18" type="file" documentType="reference">
|
||||
<Name>UINavigationController(M13ProgressViewBar)</Name>
|
||||
<Path>Categories/UINavigationController+M13ProgressViewBar.html</Path>
|
||||
|
||||
<Subnodes>
|
||||
<Node type="section">
|
||||
<Path>Categories/UINavigationController+M13ProgressViewBar.html</Path>
|
||||
<Name>Overview</Name>
|
||||
<Anchor>overview</Anchor>
|
||||
</Node>
|
||||
<Node type="section">
|
||||
<Path>Categories/UINavigationController+M13ProgressViewBar.html</Path>
|
||||
<Name>Tasks</Name>
|
||||
<Anchor>tasks</Anchor>
|
||||
</Node>
|
||||
|
||||
|
||||
|
||||
<Node type="section">
|
||||
<Path>Categories/UINavigationController+M13ProgressViewBar.html</Path>
|
||||
<Name>Instance Methods</Name>
|
||||
<Anchor>instance_methods</Anchor>
|
||||
</Node>
|
||||
|
||||
</Subnodes>
|
||||
|
||||
</Node>
|
||||
|
||||
|
||||
|
||||
</Library>
|
||||
</DocSetNodes>
|
||||
@@ -1,404 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Tokens version="1.0">
|
||||
<File path="Classes/M13ProgressConsole.html">
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/cl/M13ProgressConsole</TokenIdentifier>
|
||||
<Abstract type="html">A progress view that shows progress in the style of terminal.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressConsole/setProgress:</TokenIdentifier>
|
||||
<Abstract type="html">The progress displayed to the user.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readonly) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressConsole/progress</TokenIdentifier>
|
||||
<Abstract type="html">The progress displayed to the user.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readonly) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressConsole/progress</TokenIdentifier>
|
||||
<Abstract type="html">The progress displayed to the user.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readonly) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressConsole/setIndeterminate:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the progress view is indeterminate.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL indeterminate</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/indeterminate</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressConsole/indeterminate</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the progress view is indeterminate.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL indeterminate</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/indeterminate</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressConsole/indeterminate</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the progress view is indeterminate.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL indeterminate</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/indeterminate</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressConsole/setProgressType:</TokenIdentifier>
|
||||
<Abstract type="html">Show progress at the end of each line.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressConsoleProgressType progressType</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressType</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressConsole/progressType</TokenIdentifier>
|
||||
<Abstract type="html">Show progress at the end of each line.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressConsoleProgressType progressType</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressType</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressConsole/progressType</TokenIdentifier>
|
||||
<Abstract type="html">Show progress at the end of each line.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressConsoleProgressType progressType</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressType</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressConsole/setMaskType:</TokenIdentifier>
|
||||
<Abstract type="html">The background type of the console.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressConsoleMaskType maskType</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/maskType</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressConsole/maskType</TokenIdentifier>
|
||||
<Abstract type="html">The background type of the console.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressConsoleMaskType maskType</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/maskType</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressConsole/maskType</TokenIdentifier>
|
||||
<Abstract type="html">The background type of the console.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressConsoleMaskType maskType</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/maskType</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressConsole/setMaskColor:</TokenIdentifier>
|
||||
<Abstract type="html">The color of the mask if set to solid color.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *maskColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/maskColor</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressConsole/maskColor</TokenIdentifier>
|
||||
<Abstract type="html">The color of the mask if set to solid color.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *maskColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/maskColor</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressConsole/maskColor</TokenIdentifier>
|
||||
<Abstract type="html">The color of the mask if set to solid color.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *maskColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/maskColor</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressConsole/setShowCursor:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not to show the cursor.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL showCursor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/showCursor</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressConsole/showCursor</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not to show the cursor.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL showCursor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/showCursor</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressConsole/showCursor</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not to show the cursor.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL showCursor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/showCursor</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressConsole/setPrefix:</TokenIdentifier>
|
||||
<Abstract type="html">The prefix string for each line.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSString *prefix</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/prefix</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressConsole/prefix</TokenIdentifier>
|
||||
<Abstract type="html">The prefix string for each line.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSString *prefix</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/prefix</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressConsole/prefix</TokenIdentifier>
|
||||
<Abstract type="html">The prefix string for each line.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSString *prefix</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/prefix</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressConsole/setLines:</TokenIdentifier>
|
||||
<Abstract type="html">The array containing all the lines displyed.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSArray *lines</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/lines</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressConsole/lines</TokenIdentifier>
|
||||
<Abstract type="html">The array containing all the lines displyed.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSArray *lines</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/lines</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressConsole/lines</TokenIdentifier>
|
||||
<Abstract type="html">The array containing all the lines displyed.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSArray *lines</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/lines</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressConsole/setAnimationDuration:</TokenIdentifier>
|
||||
<Abstract type="html">The durations of animations in seconds.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationDuration</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationDuration</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressConsole/animationDuration</TokenIdentifier>
|
||||
<Abstract type="html">The durations of animations in seconds.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationDuration</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationDuration</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressConsole/animationDuration</TokenIdentifier>
|
||||
<Abstract type="html">The durations of animations in seconds.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationDuration</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationDuration</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressConsole/setProgress:</TokenIdentifier>
|
||||
<Abstract type="html">Set the progress of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setProgress:(CGFloat)progress</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>progress</Name>
|
||||
<Abstract type="html">The progress to show on the current line.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/setProgress:</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressConsole/setCurrentLine:</TokenIdentifier>
|
||||
<Abstract type="html">Set the text of the current line.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setCurrentLine:(NSString *)currentLine</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>currentLine</Name>
|
||||
<Abstract type="html">The string to replace the current line with.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/setCurrentLine:</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressConsole/addNewLineWithString:</TokenIdentifier>
|
||||
<Abstract type="html">Add a new line with the given text.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)addNewLineWithString:(NSString *)newLine</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>newLine</Name>
|
||||
<Abstract type="html">The text to start a new line with.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/addNewLineWithString:</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressConsole/clear</TokenIdentifier>
|
||||
<Abstract type="html">Clears the console.</Abstract>
|
||||
<DeclaredIn>M13ProgressConsole.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)clear</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/clear</Anchor>
|
||||
<NodeRef refid="1"/>
|
||||
</Token>
|
||||
|
||||
|
||||
</File>
|
||||
</Tokens>
|
||||
@@ -1,229 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Tokens version="1.0">
|
||||
<File path="Classes/M13ProgressViewMetroDot.html">
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/cl/M13ProgressViewMetroDot</TokenIdentifier>
|
||||
<Abstract type="html">The layer that the M13ProgressViewMetro animates.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
|
||||
<NodeRef refid="10"/>
|
||||
</Token>
|
||||
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetroDot/setHighlighted:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the dot is highlighted. The dot becomes highlighted to show progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL highlighted</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/highlighted</Anchor>
|
||||
<NodeRef refid="10"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetroDot/highlighted</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the dot is highlighted. The dot becomes highlighted to show progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL highlighted</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/highlighted</Anchor>
|
||||
<NodeRef refid="10"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewMetroDot/highlighted</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the dot is highlighted. The dot becomes highlighted to show progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL highlighted</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/highlighted</Anchor>
|
||||
<NodeRef refid="10"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetroDot/setSuccessColor:</TokenIdentifier>
|
||||
<Abstract type="html">The color to show on success.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *successColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/successColor</Anchor>
|
||||
<NodeRef refid="10"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetroDot/successColor</TokenIdentifier>
|
||||
<Abstract type="html">The color to show on success.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *successColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/successColor</Anchor>
|
||||
<NodeRef refid="10"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewMetroDot/successColor</TokenIdentifier>
|
||||
<Abstract type="html">The color to show on success.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *successColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/successColor</Anchor>
|
||||
<NodeRef refid="10"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetroDot/setFailureColor:</TokenIdentifier>
|
||||
<Abstract type="html">The color to show on failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *failureColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/failureColor</Anchor>
|
||||
<NodeRef refid="10"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetroDot/failureColor</TokenIdentifier>
|
||||
<Abstract type="html">The color to show on failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *failureColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/failureColor</Anchor>
|
||||
<NodeRef refid="10"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewMetroDot/failureColor</TokenIdentifier>
|
||||
<Abstract type="html">The color to show on failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *failureColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/failureColor</Anchor>
|
||||
<NodeRef refid="10"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetroDot/setPrimaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The primary color of the dot.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *primaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/primaryColor</Anchor>
|
||||
<NodeRef refid="10"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetroDot/primaryColor</TokenIdentifier>
|
||||
<Abstract type="html">The primary color of the dot.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *primaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/primaryColor</Anchor>
|
||||
<NodeRef refid="10"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewMetroDot/primaryColor</TokenIdentifier>
|
||||
<Abstract type="html">The primary color of the dot.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *primaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/primaryColor</Anchor>
|
||||
<NodeRef refid="10"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetroDot/setSecondaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The secondary color of the dot.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *secondaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/secondaryColor</Anchor>
|
||||
<NodeRef refid="10"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetroDot/secondaryColor</TokenIdentifier>
|
||||
<Abstract type="html">The secondary color of the dot.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *secondaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/secondaryColor</Anchor>
|
||||
<NodeRef refid="10"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewMetroDot/secondaryColor</TokenIdentifier>
|
||||
<Abstract type="html">The secondary color of the dot.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *secondaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/secondaryColor</Anchor>
|
||||
<NodeRef refid="10"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetroDot/performAction:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Perform the given action if defined. Usually showing success or failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>action</Name>
|
||||
<Abstract type="html">The action to perform.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the change</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/performAction:animated:</Anchor>
|
||||
<NodeRef refid="10"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetroDot/copy</TokenIdentifier>
|
||||
<Abstract type="html">All subclasses must respond to NSCopying.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (id)copy</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/copy</Anchor>
|
||||
<NodeRef refid="10"/>
|
||||
</Token>
|
||||
|
||||
|
||||
</File>
|
||||
</Tokens>
|
||||
@@ -1,121 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Tokens version="1.0">
|
||||
<File path="Classes/M13ProgressViewMetroDotPolygon.html">
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/cl/M13ProgressViewMetroDotPolygon</TokenIdentifier>
|
||||
<Abstract type="html">A subclass of M13ProgressViewMetroDot.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetroDotPolygon.h</DeclaredIn>
|
||||
|
||||
|
||||
<NodeRef refid="11"/>
|
||||
</Token>
|
||||
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetroDotPolygon/setNumberOfSides:</TokenIdentifier>
|
||||
<Abstract type="html">The number of sides the polygon has.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetroDotPolygon.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) NSUInteger numberOfSides</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/numberOfSides</Anchor>
|
||||
<NodeRef refid="11"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetroDotPolygon/numberOfSides</TokenIdentifier>
|
||||
<Abstract type="html">The number of sides the polygon has.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetroDotPolygon.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) NSUInteger numberOfSides</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/numberOfSides</Anchor>
|
||||
<NodeRef refid="11"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewMetroDotPolygon/numberOfSides</TokenIdentifier>
|
||||
<Abstract type="html">The number of sides the polygon has.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetroDotPolygon.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) NSUInteger numberOfSides</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/numberOfSides</Anchor>
|
||||
<NodeRef refid="11"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetroDotPolygon/setRadius:</TokenIdentifier>
|
||||
<Abstract type="html">The radius of the polygon.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetroDotPolygon.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat radius</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/radius</Anchor>
|
||||
<NodeRef refid="11"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetroDotPolygon/radius</TokenIdentifier>
|
||||
<Abstract type="html">The radius of the polygon.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetroDotPolygon.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat radius</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/radius</Anchor>
|
||||
<NodeRef refid="11"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewMetroDotPolygon/radius</TokenIdentifier>
|
||||
<Abstract type="html">The radius of the polygon.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetroDotPolygon.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat radius</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/radius</Anchor>
|
||||
<NodeRef refid="11"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetroDotPolygon/performAction:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Perform the given action if defined. Usually showing success or failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetroDotPolygon.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>action</Name>
|
||||
<Abstract type="html">The action to perform.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the change</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/performAction:animated:</Anchor>
|
||||
<NodeRef refid="11"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetroDotPolygon/copy</TokenIdentifier>
|
||||
<Abstract type="html">All subclasses must respond to NSCopying.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetroDotPolygon.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (id)copy</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/copy</Anchor>
|
||||
<NodeRef refid="11"/>
|
||||
</Token>
|
||||
|
||||
|
||||
</File>
|
||||
</Tokens>
|
||||
@@ -1,489 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Tokens version="1.0">
|
||||
<File path="Classes/M13ProgressViewPie.html">
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/cl/M13ProgressViewPie</TokenIdentifier>
|
||||
<Abstract type="html">A progress view that shows progress with a pie chart.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.h</DeclaredIn>
|
||||
|
||||
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/setBackgroundRingWidth:</TokenIdentifier>
|
||||
<Abstract type="html">The thickness of the border around the pie.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat backgroundRingWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundRingWidth</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/backgroundRingWidth</TokenIdentifier>
|
||||
<Abstract type="html">The thickness of the border around the pie.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat backgroundRingWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundRingWidth</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewPie/backgroundRingWidth</TokenIdentifier>
|
||||
<Abstract type="html">The thickness of the border around the pie.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat backgroundRingWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundRingWidth</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/setPrimaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The primary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setPrimaryColor:(UIColor *)primaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setPrimaryColor:</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/setSecondaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The secondary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setSecondaryColor:(UIColor *)secondaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setSecondaryColor:</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/setProgress:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Set the progress of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setProgress:(CGFloat)progress animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>progress</Name>
|
||||
<Abstract type="html">The progress to show on the progress view.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the progress change.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/setProgress:animated:</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/performAction:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Perform the given action if defined. Usually showing success or failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>action</Name>
|
||||
<Abstract type="html">The action to perform.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the change</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/performAction:animated:</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/setIndeterminate:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the progress view is indeterminate.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setIndeterminate:(BOOL)indeterminate</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setIndeterminate:</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/setAnimationFromValue:</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewPie/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/setAnimationToValue:</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewPie/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/setAnimationStartTime:</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewPie/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/setDisplayLink:</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewPie/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/setProgress:</TokenIdentifier>
|
||||
<Abstract type="html">Allow us to write to the progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/progress</TokenIdentifier>
|
||||
<Abstract type="html">Allow us to write to the progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewPie/progress</TokenIdentifier>
|
||||
<Abstract type="html">Allow us to write to the progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/setProgressLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The layer that progress is shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *progressLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressLayer</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/progressLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that progress is shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *progressLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressLayer</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewPie/progressLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that progress is shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *progressLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressLayer</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/setBackgroundLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The layer that the background and indeterminate progress is shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *backgroundLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundLayer</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/backgroundLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that the background and indeterminate progress is shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *backgroundLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundLayer</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewPie/backgroundLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that the background and indeterminate progress is shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *backgroundLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundLayer</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/setIconLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The layer that is used to render icons for success or failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *iconLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/iconLayer</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/iconLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that is used to render icons for success or failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *iconLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/iconLayer</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewPie/iconLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that is used to render icons for success or failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *iconLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/iconLayer</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/setIndeterminateLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The layer that is used to display the indeterminate view.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *indeterminateLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/indeterminateLayer</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/indeterminateLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that is used to display the indeterminate view.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *indeterminateLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/indeterminateLayer</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewPie/indeterminateLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that is used to display the indeterminate view.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *indeterminateLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/indeterminateLayer</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/setCurrentAction:</TokenIdentifier>
|
||||
<Abstract type="html">The action currently being performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewAction currentAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/currentAction</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewPie/currentAction</TokenIdentifier>
|
||||
<Abstract type="html">The action currently being performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewAction currentAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/currentAction</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewPie/currentAction</TokenIdentifier>
|
||||
<Abstract type="html">The action currently being performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewPie.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewAction currentAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/currentAction</Anchor>
|
||||
<NodeRef refid="12"/>
|
||||
</Token>
|
||||
|
||||
|
||||
</File>
|
||||
</Tokens>
|
||||
@@ -1,469 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Tokens version="1.0">
|
||||
<File path="Classes/M13ProgressViewRadiative.html">
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/cl/M13ProgressViewRadiative</TokenIdentifier>
|
||||
<Abstract type="html">A progress view that displays progress via "Radiative" rings around a central point.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.h</DeclaredIn>
|
||||
|
||||
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/setOriginationPoint:</TokenIdentifier>
|
||||
<Abstract type="html">The point where the wave fronts originate from. The point is defined in percentages, top left being {0, 0}, and the bottom right being {1, 1}.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGPoint originationPoint</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/originationPoint</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/originationPoint</TokenIdentifier>
|
||||
<Abstract type="html">The point where the wave fronts originate from. The point is defined in percentages, top left being {0, 0}, and the bottom right being {1, 1}.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGPoint originationPoint</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/originationPoint</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRadiative/originationPoint</TokenIdentifier>
|
||||
<Abstract type="html">The point where the wave fronts originate from. The point is defined in percentages, top left being {0, 0}, and the bottom right being {1, 1}.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGPoint originationPoint</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/originationPoint</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/setRipplesRadius:</TokenIdentifier>
|
||||
<Abstract type="html">The distance of the last ripple from the origination point.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat ripplesRadius</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/ripplesRadius</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/ripplesRadius</TokenIdentifier>
|
||||
<Abstract type="html">The distance of the last ripple from the origination point.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat ripplesRadius</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/ripplesRadius</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRadiative/ripplesRadius</TokenIdentifier>
|
||||
<Abstract type="html">The distance of the last ripple from the origination point.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat ripplesRadius</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/ripplesRadius</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/setRippleWidth:</TokenIdentifier>
|
||||
<Abstract type="html">The width of the ripples.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat rippleWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/rippleWidth</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/rippleWidth</TokenIdentifier>
|
||||
<Abstract type="html">The width of the ripples.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat rippleWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/rippleWidth</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRadiative/rippleWidth</TokenIdentifier>
|
||||
<Abstract type="html">The width of the ripples.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat rippleWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/rippleWidth</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/setShape:</TokenIdentifier>
|
||||
<Abstract type="html">The shape of the radiative ripples</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewRadiativeShape shape</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/shape</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/shape</TokenIdentifier>
|
||||
<Abstract type="html">The shape of the radiative ripples</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewRadiativeShape shape</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/shape</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRadiative/shape</TokenIdentifier>
|
||||
<Abstract type="html">The shape of the radiative ripples</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewRadiativeShape shape</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/shape</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/setNumberOfRipples:</TokenIdentifier>
|
||||
<Abstract type="html">The number of ripples the progress view displays.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) NSUInteger numberOfRipples</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/numberOfRipples</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/numberOfRipples</TokenIdentifier>
|
||||
<Abstract type="html">The number of ripples the progress view displays.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) NSUInteger numberOfRipples</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/numberOfRipples</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRadiative/numberOfRipples</TokenIdentifier>
|
||||
<Abstract type="html">The number of ripples the progress view displays.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) NSUInteger numberOfRipples</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/numberOfRipples</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/setPulseWidth:</TokenIdentifier>
|
||||
<Abstract type="html">The number of ripples the indeterminate pulse animation is.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) NSUInteger pulseWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/pulseWidth</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/pulseWidth</TokenIdentifier>
|
||||
<Abstract type="html">The number of ripples the indeterminate pulse animation is.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) NSUInteger pulseWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/pulseWidth</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRadiative/pulseWidth</TokenIdentifier>
|
||||
<Abstract type="html">The number of ripples the indeterminate pulse animation is.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) NSUInteger pulseWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/pulseWidth</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/setProgressOutwards:</TokenIdentifier>
|
||||
<Abstract type="html">The direction of the progress. If set to yes, the progress will be outward, of set to no, it will be inwards.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL progressOutwards</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressOutwards</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/progressOutwards</TokenIdentifier>
|
||||
<Abstract type="html">The direction of the progress. If set to yes, the progress will be outward, of set to no, it will be inwards.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL progressOutwards</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressOutwards</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRadiative/progressOutwards</TokenIdentifier>
|
||||
<Abstract type="html">The direction of the progress. If set to yes, the progress will be outward, of set to no, it will be inwards.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL progressOutwards</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressOutwards</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/setPrimaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The primary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setPrimaryColor:(UIColor *)primaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setPrimaryColor:</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/setSecondaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The secondary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setSecondaryColor:(UIColor *)secondaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setSecondaryColor:</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/setProgress:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Set the progress of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setProgress:(CGFloat)progress animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>progress</Name>
|
||||
<Abstract type="html">The progress to show on the progress view.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the progress change.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/setProgress:animated:</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/setIndeterminate:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the progress view is indeterminate.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setIndeterminate:(BOOL)indeterminate</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setIndeterminate:</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/setAnimationFromValue:</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRadiative/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/setAnimationToValue:</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRadiative/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/setAnimationStartTime:</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRadiative/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/setDisplayLink:</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRadiative/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRadiative/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRadiative.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="13"/>
|
||||
</Token>
|
||||
|
||||
|
||||
</File>
|
||||
</Tokens>
|
||||
@@ -1,561 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Tokens version="1.0">
|
||||
<File path="Classes/M13ProgressViewRing.html">
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/cl/M13ProgressViewRing</TokenIdentifier>
|
||||
<Abstract type="html">A progress view stylized similarly to the iOS 7 App store progress view.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.h</DeclaredIn>
|
||||
|
||||
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/setBackgroundRingWidth:</TokenIdentifier>
|
||||
<Abstract type="html">The width of the background ring in points.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat backgroundRingWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundRingWidth</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/backgroundRingWidth</TokenIdentifier>
|
||||
<Abstract type="html">The width of the background ring in points.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat backgroundRingWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundRingWidth</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRing/backgroundRingWidth</TokenIdentifier>
|
||||
<Abstract type="html">The width of the background ring in points.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat backgroundRingWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundRingWidth</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/setProgressRingWidth:</TokenIdentifier>
|
||||
<Abstract type="html">The width of the progress ring in points.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat progressRingWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressRingWidth</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/progressRingWidth</TokenIdentifier>
|
||||
<Abstract type="html">The width of the progress ring in points.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat progressRingWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressRingWidth</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRing/progressRingWidth</TokenIdentifier>
|
||||
<Abstract type="html">The width of the progress ring in points.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat progressRingWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressRingWidth</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/setShowPercentage:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not to display a percentage inside the ring.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL showPercentage</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/showPercentage</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/showPercentage</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not to display a percentage inside the ring.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL showPercentage</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/showPercentage</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRing/showPercentage</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not to display a percentage inside the ring.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL showPercentage</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/showPercentage</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/setPrimaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The primary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setPrimaryColor:(UIColor *)primaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setPrimaryColor:</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/setSecondaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The secondary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setSecondaryColor:(UIColor *)secondaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setSecondaryColor:</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/setProgress:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Set the progress of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setProgress:(CGFloat)progress animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>progress</Name>
|
||||
<Abstract type="html">The progress to show on the progress view.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the progress change.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/setProgress:animated:</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/performAction:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Perform the given action if defined. Usually showing success or failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>action</Name>
|
||||
<Abstract type="html">The action to perform.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the change</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/performAction:animated:</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/setIndeterminate:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the progress view is indeterminate.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setIndeterminate:(BOOL)indeterminate</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setIndeterminate:</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/setPercentageFormatter:</TokenIdentifier>
|
||||
<Abstract type="html">The number formatter to display the progress percentage.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSNumberFormatter *percentageFormatter</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/percentageFormatter</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/percentageFormatter</TokenIdentifier>
|
||||
<Abstract type="html">The number formatter to display the progress percentage.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSNumberFormatter *percentageFormatter</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/percentageFormatter</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRing/percentageFormatter</TokenIdentifier>
|
||||
<Abstract type="html">The number formatter to display the progress percentage.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSNumberFormatter *percentageFormatter</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/percentageFormatter</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/setPercentageLabel:</TokenIdentifier>
|
||||
<Abstract type="html">The label that shows the percentage.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UILabel *percentageLabel</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/percentageLabel</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/percentageLabel</TokenIdentifier>
|
||||
<Abstract type="html">The label that shows the percentage.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UILabel *percentageLabel</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/percentageLabel</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRing/percentageLabel</TokenIdentifier>
|
||||
<Abstract type="html">The label that shows the percentage.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UILabel *percentageLabel</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/percentageLabel</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/setAnimationFromValue:</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRing/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/setAnimationToValue:</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRing/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/setAnimationStartTime:</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRing/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/setDisplayLink:</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRing/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/setProgressLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The layer that progress is shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *progressLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressLayer</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/progressLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that progress is shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *progressLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressLayer</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRing/progressLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that progress is shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *progressLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressLayer</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/setBackgroundLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The layer that the background and indeterminate progress is shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *backgroundLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundLayer</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/backgroundLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that the background and indeterminate progress is shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *backgroundLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundLayer</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRing/backgroundLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that the background and indeterminate progress is shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *backgroundLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundLayer</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/setIconLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The layer that is used to render icons for success or failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *iconLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/iconLayer</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/iconLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that is used to render icons for success or failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *iconLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/iconLayer</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRing/iconLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that is used to render icons for success or failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *iconLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/iconLayer</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/setCurrentAction:</TokenIdentifier>
|
||||
<Abstract type="html">The action currently being performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewAction currentAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/currentAction</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/currentAction</TokenIdentifier>
|
||||
<Abstract type="html">The action currently being performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewAction currentAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/currentAction</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRing/currentAction</TokenIdentifier>
|
||||
<Abstract type="html">The action currently being performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewAction currentAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/currentAction</Anchor>
|
||||
<NodeRef refid="14"/>
|
||||
</Token>
|
||||
|
||||
|
||||
</File>
|
||||
</Tokens>
|
||||
@@ -1,633 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Tokens version="1.0">
|
||||
<File path="Classes/M13ProgressViewSegmentedBar.html">
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/cl/M13ProgressViewSegmentedBar</TokenIdentifier>
|
||||
<Abstract type="html">A progress bar that shows progress with discrete values.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.h</DeclaredIn>
|
||||
|
||||
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/setProgressDirection:</TokenIdentifier>
|
||||
<Abstract type="html">The direction of progress. (What direction the fill proceeds in.)</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewSegmentedBarProgressDirection progressDirection</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressDirection</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/progressDirection</TokenIdentifier>
|
||||
<Abstract type="html">The direction of progress. (What direction the fill proceeds in.)</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewSegmentedBarProgressDirection progressDirection</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressDirection</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedBar/progressDirection</TokenIdentifier>
|
||||
<Abstract type="html">The direction of progress. (What direction the fill proceeds in.)</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewSegmentedBarProgressDirection progressDirection</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressDirection</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/setSegmentShape:</TokenIdentifier>
|
||||
<Abstract type="html">The shape of the segments.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewSegmentedBarSegmentShape segmentShape</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/segmentShape</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/segmentShape</TokenIdentifier>
|
||||
<Abstract type="html">The shape of the segments.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewSegmentedBarSegmentShape segmentShape</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/segmentShape</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedBar/segmentShape</TokenIdentifier>
|
||||
<Abstract type="html">The shape of the segments.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewSegmentedBarSegmentShape segmentShape</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/segmentShape</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/setCornerRadius:</TokenIdentifier>
|
||||
<Abstract type="html">The corner radius of the segment shape if the shape is set to M13ProgressViewSegmentedBarSegmentShapeRoundedRect.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat cornerRadius</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/cornerRadius</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/cornerRadius</TokenIdentifier>
|
||||
<Abstract type="html">The corner radius of the segment shape if the shape is set to M13ProgressViewSegmentedBarSegmentShapeRoundedRect.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat cornerRadius</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/cornerRadius</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedBar/cornerRadius</TokenIdentifier>
|
||||
<Abstract type="html">The corner radius of the segment shape if the shape is set to M13ProgressViewSegmentedBarSegmentShapeRoundedRect.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat cornerRadius</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/cornerRadius</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/setNumberOfSegments:</TokenIdentifier>
|
||||
<Abstract type="html">The number of segments to display in the progress view.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) NSInteger numberOfSegments</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/numberOfSegments</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/numberOfSegments</TokenIdentifier>
|
||||
<Abstract type="html">The number of segments to display in the progress view.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) NSInteger numberOfSegments</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/numberOfSegments</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedBar/numberOfSegments</TokenIdentifier>
|
||||
<Abstract type="html">The number of segments to display in the progress view.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) NSInteger numberOfSegments</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/numberOfSegments</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/setSegmentSeparation:</TokenIdentifier>
|
||||
<Abstract type="html">The separation between segments in points. Must be less than self.width / numberOfSegments.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat segmentSeparation</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/segmentSeparation</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/segmentSeparation</TokenIdentifier>
|
||||
<Abstract type="html">The separation between segments in points. Must be less than self.width / numberOfSegments.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat segmentSeparation</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/segmentSeparation</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedBar/segmentSeparation</TokenIdentifier>
|
||||
<Abstract type="html">The separation between segments in points. Must be less than self.width / numberOfSegments.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat segmentSeparation</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/segmentSeparation</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/setSuccessColor:</TokenIdentifier>
|
||||
<Abstract type="html">The color the bar changes to for the success action.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *successColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/successColor</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/successColor</TokenIdentifier>
|
||||
<Abstract type="html">The color the bar changes to for the success action.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *successColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/successColor</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedBar/successColor</TokenIdentifier>
|
||||
<Abstract type="html">The color the bar changes to for the success action.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *successColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/successColor</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/setFailureColor:</TokenIdentifier>
|
||||
<Abstract type="html">The color the bar changes to for the failure action.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *failureColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/failureColor</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/failureColor</TokenIdentifier>
|
||||
<Abstract type="html">The color the bar changes to for the failure action.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *failureColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/failureColor</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedBar/failureColor</TokenIdentifier>
|
||||
<Abstract type="html">The color the bar changes to for the failure action.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *failureColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/failureColor</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/setPrimaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The primary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setPrimaryColor:(UIColor *)primaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setPrimaryColor:</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/setSecondaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The secondary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setSecondaryColor:(UIColor *)secondaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setSecondaryColor:</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/setProgress:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Set the progress of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setProgress:(CGFloat)progress animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>progress</Name>
|
||||
<Abstract type="html">The progress to show on the progress view.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the progress change.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/setProgress:animated:</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/performAction:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Perform the given action if defined. Usually showing success or failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>action</Name>
|
||||
<Abstract type="html">The action to perform.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the change</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/performAction:animated:</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/setIndeterminate:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the progress view is indeterminate.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setIndeterminate:(BOOL)indeterminate</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setIndeterminate:</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/setAnimationFromValue:</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedBar/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/setAnimationToValue:</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedBar/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/setAnimationStartTime:</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedBar/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/setDisplayLink:</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedBar/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/setProgress:</TokenIdentifier>
|
||||
<Abstract type="html">Allow us to write to the progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/progress</TokenIdentifier>
|
||||
<Abstract type="html">Allow us to write to the progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedBar/progress</TokenIdentifier>
|
||||
<Abstract type="html">Allow us to write to the progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/setProgressLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The layer that progress is shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *progressLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressLayer</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/progressLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that progress is shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *progressLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressLayer</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedBar/progressLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that progress is shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *progressLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressLayer</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/setBackgroundLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The layer that the background shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *backgroundLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundLayer</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/backgroundLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that the background shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *backgroundLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundLayer</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedBar/backgroundLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that the background shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *backgroundLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundLayer</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/setCurrentAction:</TokenIdentifier>
|
||||
<Abstract type="html">The action currently being performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewAction currentAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/currentAction</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedBar/currentAction</TokenIdentifier>
|
||||
<Abstract type="html">The action currently being performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewAction currentAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/currentAction</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedBar/currentAction</TokenIdentifier>
|
||||
<Abstract type="html">The action currently being performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewAction currentAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/currentAction</Anchor>
|
||||
<NodeRef refid="15"/>
|
||||
</Token>
|
||||
|
||||
|
||||
</File>
|
||||
</Tokens>
|
||||
@@ -1,669 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Tokens version="1.0">
|
||||
<File path="Classes/M13ProgressViewSegmentedRing.html">
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/cl/M13ProgressViewSegmentedRing</TokenIdentifier>
|
||||
<Abstract type="html">Progress is shown by a ring split up into segments.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.h</DeclaredIn>
|
||||
|
||||
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/setProgressRingWidth:</TokenIdentifier>
|
||||
<Abstract type="html">The width of the progress ring in points.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat progressRingWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressRingWidth</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/progressRingWidth</TokenIdentifier>
|
||||
<Abstract type="html">The width of the progress ring in points.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat progressRingWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressRingWidth</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedRing/progressRingWidth</TokenIdentifier>
|
||||
<Abstract type="html">The width of the progress ring in points.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat progressRingWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressRingWidth</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/setNumberOfSegments:</TokenIdentifier>
|
||||
<Abstract type="html">The number of segments to display in the progress view.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) NSInteger numberOfSegments</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/numberOfSegments</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/numberOfSegments</TokenIdentifier>
|
||||
<Abstract type="html">The number of segments to display in the progress view.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) NSInteger numberOfSegments</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/numberOfSegments</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedRing/numberOfSegments</TokenIdentifier>
|
||||
<Abstract type="html">The number of segments to display in the progress view.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) NSInteger numberOfSegments</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/numberOfSegments</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/setSegmentSeparationAngle:</TokenIdentifier>
|
||||
<Abstract type="html">The angle of the separation between the segments in radians.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat segmentSeparationAngle</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/segmentSeparationAngle</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/segmentSeparationAngle</TokenIdentifier>
|
||||
<Abstract type="html">The angle of the separation between the segments in radians.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat segmentSeparationAngle</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/segmentSeparationAngle</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedRing/segmentSeparationAngle</TokenIdentifier>
|
||||
<Abstract type="html">The angle of the separation between the segments in radians.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat segmentSeparationAngle</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/segmentSeparationAngle</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/setSegmentBoundaryType:</TokenIdentifier>
|
||||
<Abstract type="html">The type of boundary between segments.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewSegmentedRingSegmentBoundaryType segmentBoundaryType</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/segmentBoundaryType</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/segmentBoundaryType</TokenIdentifier>
|
||||
<Abstract type="html">The type of boundary between segments.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewSegmentedRingSegmentBoundaryType segmentBoundaryType</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/segmentBoundaryType</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedRing/segmentBoundaryType</TokenIdentifier>
|
||||
<Abstract type="html">The type of boundary between segments.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewSegmentedRingSegmentBoundaryType segmentBoundaryType</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/segmentBoundaryType</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/setShowPercentage:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not to display a percentage inside the ring.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL showPercentage</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/showPercentage</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/showPercentage</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not to display a percentage inside the ring.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL showPercentage</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/showPercentage</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedRing/showPercentage</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not to display a percentage inside the ring.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL showPercentage</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/showPercentage</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/setPrimaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The primary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setPrimaryColor:(UIColor *)primaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setPrimaryColor:</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/setSecondaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The secondary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setSecondaryColor:(UIColor *)secondaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setSecondaryColor:</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/setProgress:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Set the progress of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setProgress:(CGFloat)progress animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>progress</Name>
|
||||
<Abstract type="html">The progress to show on the progress view.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the progress change.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/setProgress:animated:</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/performAction:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Perform the given action if defined. Usually showing success or failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>action</Name>
|
||||
<Abstract type="html">The action to perform.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the change</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/performAction:animated:</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/setIndeterminate:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the progress view is indeterminate.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setIndeterminate:(BOOL)indeterminate</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setIndeterminate:</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/setPercentageFormatter:</TokenIdentifier>
|
||||
<Abstract type="html">The number formatter to display the progress percentage.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSNumberFormatter *percentageFormatter</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/percentageFormatter</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/percentageFormatter</TokenIdentifier>
|
||||
<Abstract type="html">The number formatter to display the progress percentage.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSNumberFormatter *percentageFormatter</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/percentageFormatter</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedRing/percentageFormatter</TokenIdentifier>
|
||||
<Abstract type="html">The number formatter to display the progress percentage.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSNumberFormatter *percentageFormatter</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/percentageFormatter</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/setPercentageLabel:</TokenIdentifier>
|
||||
<Abstract type="html">The label that shows the percentage.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UILabel *percentageLabel</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/percentageLabel</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/percentageLabel</TokenIdentifier>
|
||||
<Abstract type="html">The label that shows the percentage.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UILabel *percentageLabel</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/percentageLabel</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedRing/percentageLabel</TokenIdentifier>
|
||||
<Abstract type="html">The label that shows the percentage.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UILabel *percentageLabel</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/percentageLabel</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/setAnimationFromValue:</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedRing/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/setAnimationToValue:</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedRing/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/setAnimationStartTime:</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedRing/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/setDisplayLink:</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedRing/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/setProgress:</TokenIdentifier>
|
||||
<Abstract type="html">Allow us to write to the progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/progress</TokenIdentifier>
|
||||
<Abstract type="html">Allow us to write to the progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedRing/progress</TokenIdentifier>
|
||||
<Abstract type="html">Allow us to write to the progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/setProgressLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The layer that progress is shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *progressLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressLayer</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/progressLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that progress is shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *progressLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressLayer</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedRing/progressLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that progress is shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *progressLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressLayer</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/setBackgroundLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The layer that the background shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *backgroundLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundLayer</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/backgroundLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that the background shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *backgroundLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundLayer</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedRing/backgroundLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that the background shown on.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *backgroundLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundLayer</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/setIconLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The layer that is used to render icons for success or failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *iconLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/iconLayer</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/iconLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that is used to render icons for success or failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *iconLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/iconLayer</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedRing/iconLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that is used to render icons for success or failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *iconLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/iconLayer</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/setCurrentAction:</TokenIdentifier>
|
||||
<Abstract type="html">The action currently being performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewAction currentAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/currentAction</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewSegmentedRing/currentAction</TokenIdentifier>
|
||||
<Abstract type="html">The action currently being performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewAction currentAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/currentAction</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewSegmentedRing/currentAction</TokenIdentifier>
|
||||
<Abstract type="html">The action currently being performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewSegmentedRing.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewAction currentAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/currentAction</Anchor>
|
||||
<NodeRef refid="16"/>
|
||||
</Token>
|
||||
|
||||
|
||||
</File>
|
||||
</Tokens>
|
||||
@@ -1,813 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Tokens version="1.0">
|
||||
<File path="Classes/M13ProgressViewStripedBar.html">
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/cl/M13ProgressViewStripedBar</TokenIdentifier>
|
||||
<Abstract type="html">A progress bar that is striped, and can animate the stripes if desired.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.h</DeclaredIn>
|
||||
|
||||
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setCornerType:</TokenIdentifier>
|
||||
<Abstract type="html">The type of corner to display on the bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewStripedBarCornerType cornerType</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/cornerType</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/cornerType</TokenIdentifier>
|
||||
<Abstract type="html">The type of corner to display on the bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewStripedBarCornerType cornerType</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/cornerType</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewStripedBar/cornerType</TokenIdentifier>
|
||||
<Abstract type="html">The type of corner to display on the bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewStripedBarCornerType cornerType</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/cornerType</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setCornerRadius:</TokenIdentifier>
|
||||
<Abstract type="html">The radius of the corner if the corner type is set to rounded rect.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat cornerRadius</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/cornerRadius</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/cornerRadius</TokenIdentifier>
|
||||
<Abstract type="html">The radius of the corner if the corner type is set to rounded rect.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat cornerRadius</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/cornerRadius</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewStripedBar/cornerRadius</TokenIdentifier>
|
||||
<Abstract type="html">The radius of the corner if the corner type is set to rounded rect.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat cornerRadius</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/cornerRadius</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setStripeWidth:</TokenIdentifier>
|
||||
<Abstract type="html">The width of the stripes if shown.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat stripeWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/stripeWidth</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/stripeWidth</TokenIdentifier>
|
||||
<Abstract type="html">The width of the stripes if shown.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat stripeWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/stripeWidth</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewStripedBar/stripeWidth</TokenIdentifier>
|
||||
<Abstract type="html">The width of the stripes if shown.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat stripeWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/stripeWidth</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setAnimateStripes:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the stripes are animated.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL animateStripes</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animateStripes</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/animateStripes</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the stripes are animated.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL animateStripes</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animateStripes</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewStripedBar/animateStripes</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the stripes are animated.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL animateStripes</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animateStripes</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setShowStripes:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not to show the stripes.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL showStripes</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/showStripes</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/showStripes</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not to show the stripes.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL showStripes</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/showStripes</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewStripedBar/showStripes</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not to show the stripes.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL showStripes</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/showStripes</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setStripeColor:</TokenIdentifier>
|
||||
<Abstract type="html">The color of the stripes.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *stripeColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/stripeColor</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/stripeColor</TokenIdentifier>
|
||||
<Abstract type="html">The color of the stripes.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *stripeColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/stripeColor</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewStripedBar/stripeColor</TokenIdentifier>
|
||||
<Abstract type="html">The color of the stripes.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *stripeColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/stripeColor</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setBorderWidth:</TokenIdentifier>
|
||||
<Abstract type="html">The width of the border.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat borderWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/borderWidth</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/borderWidth</TokenIdentifier>
|
||||
<Abstract type="html">The width of the border.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat borderWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/borderWidth</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewStripedBar/borderWidth</TokenIdentifier>
|
||||
<Abstract type="html">The width of the border.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat borderWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/borderWidth</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setPrimaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The primary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setPrimaryColor:(UIColor *)primaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setPrimaryColor:</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setSecondaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The secondary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setSecondaryColor:(UIColor *)secondaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setSecondaryColor:</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setProgress:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Set the progress of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setProgress:(CGFloat)progress animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>progress</Name>
|
||||
<Abstract type="html">The progress to show on the progress view.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the progress change.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/setProgress:animated:</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/performAction:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Perform the given action if defined. Usually showing success or failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>action</Name>
|
||||
<Abstract type="html">The action to perform.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the change</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/performAction:animated:</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setIndeterminate:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the progress view is indeterminate.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setIndeterminate:(BOOL)indeterminate</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setIndeterminate:</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setAnimationFromValue:</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewStripedBar/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setAnimationToValue:</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewStripedBar/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setAnimationStartTime:</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewStripedBar/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setDisplayLink:</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewStripedBar/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setProgress:</TokenIdentifier>
|
||||
<Abstract type="html">Allow us to write to the progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/progress</TokenIdentifier>
|
||||
<Abstract type="html">Allow us to write to the progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewStripedBar/progress</TokenIdentifier>
|
||||
<Abstract type="html">Allow us to write to the progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setProgressSuperLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The layer that contains the progress layer. That also masks the progress layer.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CALayer *progressSuperLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressSuperLayer</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/progressSuperLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that contains the progress layer. That also masks the progress layer.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CALayer *progressSuperLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressSuperLayer</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewStripedBar/progressSuperLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that contains the progress layer. That also masks the progress layer.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CALayer *progressSuperLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressSuperLayer</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setProgressLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The layer that displays progress in the progress bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CALayer *progressLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressLayer</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/progressLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that displays progress in the progress bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CALayer *progressLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressLayer</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewStripedBar/progressLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that displays progress in the progress bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CALayer *progressLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressLayer</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setProgressMaskLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The layer that masks the stripes of the progress layer.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *progressMaskLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressMaskLayer</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/progressMaskLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that masks the stripes of the progress layer.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *progressMaskLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressMaskLayer</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewStripedBar/progressMaskLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that masks the stripes of the progress layer.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *progressMaskLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressMaskLayer</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setMaskLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The mask layer for the progress layer.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *maskLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/maskLayer</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/maskLayer</TokenIdentifier>
|
||||
<Abstract type="html">The mask layer for the progress layer.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *maskLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/maskLayer</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewStripedBar/maskLayer</TokenIdentifier>
|
||||
<Abstract type="html">The mask layer for the progress layer.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *maskLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/maskLayer</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setBackgroundLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The background layer that displays the border.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *backgroundLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundLayer</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/backgroundLayer</TokenIdentifier>
|
||||
<Abstract type="html">The background layer that displays the border.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *backgroundLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundLayer</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewStripedBar/backgroundLayer</TokenIdentifier>
|
||||
<Abstract type="html">The background layer that displays the border.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *backgroundLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundLayer</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setIndeterminateLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The layer that is used to animate indeterminate progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CALayer *indeterminateLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/indeterminateLayer</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/indeterminateLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that is used to animate indeterminate progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CALayer *indeterminateLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/indeterminateLayer</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewStripedBar/indeterminateLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that is used to animate indeterminate progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CALayer *indeterminateLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/indeterminateLayer</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setCurrentAction:</TokenIdentifier>
|
||||
<Abstract type="html">The action currently being performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewAction currentAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/currentAction</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/currentAction</TokenIdentifier>
|
||||
<Abstract type="html">The action currently being performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewAction currentAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/currentAction</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewStripedBar/currentAction</TokenIdentifier>
|
||||
<Abstract type="html">The action currently being performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewAction currentAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/currentAction</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/setStripesLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The stripes layer.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *stripesLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/stripesLayer</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewStripedBar/stripesLayer</TokenIdentifier>
|
||||
<Abstract type="html">The stripes layer.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *stripesLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/stripesLayer</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewStripedBar/stripesLayer</TokenIdentifier>
|
||||
<Abstract type="html">The stripes layer.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewStripedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *stripesLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/stripesLayer</Anchor>
|
||||
<NodeRef refid="17"/>
|
||||
</Token>
|
||||
|
||||
|
||||
</File>
|
||||
</Tokens>
|
||||
@@ -1,153 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Tokens version="1.0">
|
||||
<File path="Categories/UINavigationController+M13ProgressViewBar.html">
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/cat/UINavigationController(M13ProgressViewBar)</TokenIdentifier>
|
||||
<Abstract type="html">A UINavagationController category that adds a progress view to the UINavigationBar.</Abstract>
|
||||
<DeclaredIn>UINavigationController+M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
|
||||
<NodeRef refid="18"/>
|
||||
</Token>
|
||||
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/UINavigationController/showProgress</TokenIdentifier>
|
||||
<Abstract type="html">Show the progress bar.</Abstract>
|
||||
<DeclaredIn>UINavigationController+M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)showProgress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/showProgress</Anchor>
|
||||
<NodeRef refid="18"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/UINavigationController/setProgress:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Set the progress to display on the progress bar.</Abstract>
|
||||
<DeclaredIn>UINavigationController+M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setProgress:(CGFloat)progress animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>progress</Name>
|
||||
<Abstract type="html">The progress to display as a percentage from 0-1.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the change.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/setProgress:animated:</Anchor>
|
||||
<NodeRef refid="18"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/UINavigationController/setProgressTitle:</TokenIdentifier>
|
||||
<Abstract type="html">Set the string to replace the UINavigationBar's title with while showing progress. Send nil to reset the title.</Abstract>
|
||||
<DeclaredIn>UINavigationController+M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setProgressTitle:(NSString *)title</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>title</Name>
|
||||
<Abstract type="html">The string to replace the UINavigationBar's title while showing progress.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/setProgressTitle:</Anchor>
|
||||
<NodeRef refid="18"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/UINavigationController/setIndeterminate:</TokenIdentifier>
|
||||
<Abstract type="html">Set wether or not to show indeterminate.</Abstract>
|
||||
<DeclaredIn>UINavigationController+M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setIndeterminate:(BOOL)indeterminate</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>indeterminate</Name>
|
||||
<Abstract type="html">wether or not the progress bar is indeterminate.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/setIndeterminate:</Anchor>
|
||||
<NodeRef refid="18"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/UINavigationController/finishProgress</TokenIdentifier>
|
||||
<Abstract type="html">Fill the progress bar completely and remove it from display.</Abstract>
|
||||
<DeclaredIn>UINavigationController+M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)finishProgress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/finishProgress</Anchor>
|
||||
<NodeRef refid="18"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/UINavigationController/cancelProgress</TokenIdentifier>
|
||||
<Abstract type="html">Remove the progress bar from the display.</Abstract>
|
||||
<DeclaredIn>UINavigationController+M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)cancelProgress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/cancelProgress</Anchor>
|
||||
<NodeRef refid="18"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/UINavigationController/isShowingProgressBar</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the progress bar is showing.</Abstract>
|
||||
<DeclaredIn>UINavigationController+M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (BOOL)isShowingProgressBar</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/isShowingProgressBar</Anchor>
|
||||
<NodeRef refid="18"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/UINavigationController/setPrimaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The primary color of the progress bar if you do not want it to be the same as the UINavigationBar's tint color. If set to nil, the UINavigationBar's tint color will be used.</Abstract>
|
||||
<DeclaredIn>UINavigationController+M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setPrimaryColor:(UIColor *)primaryColor</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>primaryColor</Name>
|
||||
<Abstract type="html">The color to set.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/setPrimaryColor:</Anchor>
|
||||
<NodeRef refid="18"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/UINavigationController/setSecondaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The secondary color of the progress bar, if nil, the secondary color will be the barTintColor.</Abstract>
|
||||
<DeclaredIn>UINavigationController+M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setSecondaryColor:(UIColor *)secondaryColor</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>secondaryColor</Name>
|
||||
<Abstract type="html">The color to set.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/setSecondaryColor:</Anchor>
|
||||
<NodeRef refid="18"/>
|
||||
</Token>
|
||||
|
||||
|
||||
</File>
|
||||
</Tokens>
|
||||
@@ -1,997 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Tokens version="1.0">
|
||||
<File path="Classes/M13ProgressHUD.html">
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/cl/M13ProgressHUD</TokenIdentifier>
|
||||
<Abstract type="html">A progress HUD to display progress, and a description over a window or view.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/initWithProgressView:</TokenIdentifier>
|
||||
<Abstract type="html">Initalize the HUD with a customized progress view.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (id)initWithProgressView:(M13ProgressView *)progressView</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>progressView</Name>
|
||||
<Abstract type="html">The progres view to display in the HUD.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/initWithProgressView:</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/initAndShowWithProgressView:progress:indeterminate:status:mask:inView:</TokenIdentifier>
|
||||
<Abstract type="html">Initalize and show the hud with parameters.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (id)initAndShowWithProgressView:(M13ProgressView *)progressView progress:(CGFloat)progress indeterminate:(BOOL)indeterminate status:(NSString *)status mask:(M13ProgressHUDMaskType)maskType inView:(UIView *)view</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>progressView</Name>
|
||||
<Abstract type="html">The progress view to show in the HUD.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>progress</Name>
|
||||
<Abstract type="html">The progress to display in the progress view.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>indeterminate</Name>
|
||||
<Abstract type="html">Wether or not the progress view is indeterminate.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>status</Name>
|
||||
<Abstract type="html">The status to display in the HUD.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>maskType</Name>
|
||||
<Abstract type="html">The type of mask to use for the HUD.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>view</Name>
|
||||
<Abstract type="html">The view to show the HUD in.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
<ReturnValue><Abstract type="html">A instance of M13PRogressHUD</Abstract></ReturnValue>
|
||||
<Anchor>//api/name/initAndShowWithProgressView:progress:indeterminate:status:mask:inView:</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setProgressView:</TokenIdentifier>
|
||||
<Abstract type="html">The progress view displaied.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) M13ProgressView *progressView</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressView</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/progressView</TokenIdentifier>
|
||||
<Abstract type="html">The progress view displaied.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) M13ProgressView *progressView</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressView</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressHUD/progressView</TokenIdentifier>
|
||||
<Abstract type="html">The progress view displaied.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) M13ProgressView *progressView</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressView</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setPrimaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The primary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *primaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/primaryColor</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/primaryColor</TokenIdentifier>
|
||||
<Abstract type="html">The primary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *primaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/primaryColor</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressHUD/primaryColor</TokenIdentifier>
|
||||
<Abstract type="html">The primary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *primaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/primaryColor</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setSecondaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The secondary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *secondaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/secondaryColor</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/secondaryColor</TokenIdentifier>
|
||||
<Abstract type="html">The secondary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *secondaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/secondaryColor</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressHUD/secondaryColor</TokenIdentifier>
|
||||
<Abstract type="html">The secondary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *secondaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/secondaryColor</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setProgress:</TokenIdentifier>
|
||||
<Abstract type="html">The progress displayed to the user.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readonly) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/progress</TokenIdentifier>
|
||||
<Abstract type="html">The progress displayed to the user.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readonly) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressHUD/progress</TokenIdentifier>
|
||||
<Abstract type="html">The progress displayed to the user.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readonly) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setIndeterminate:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the progress view is indeterminate.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL indeterminate</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/indeterminate</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/indeterminate</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the progress view is indeterminate.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL indeterminate</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/indeterminate</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressHUD/indeterminate</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the progress view is indeterminate.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL indeterminate</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/indeterminate</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setApplyBlurToBackground:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not a iOS7 style blur is applied to the HUD.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL applyBlurToBackground</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/applyBlurToBackground</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/applyBlurToBackground</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not a iOS7 style blur is applied to the HUD.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL applyBlurToBackground</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/applyBlurToBackground</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressHUD/applyBlurToBackground</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not a iOS7 style blur is applied to the HUD.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL applyBlurToBackground</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/applyBlurToBackground</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setHudBackgroundColor:</TokenIdentifier>
|
||||
<Abstract type="html">The color of the background.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *hudBackgroundColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/hudBackgroundColor</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/hudBackgroundColor</TokenIdentifier>
|
||||
<Abstract type="html">The color of the background.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *hudBackgroundColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/hudBackgroundColor</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressHUD/hudBackgroundColor</TokenIdentifier>
|
||||
<Abstract type="html">The color of the background.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *hudBackgroundColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/hudBackgroundColor</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setStatusPosition:</TokenIdentifier>
|
||||
<Abstract type="html">The location of the status label in comparison to the progress view.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressHUDStatusPosition statusPosition</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/statusPosition</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/statusPosition</TokenIdentifier>
|
||||
<Abstract type="html">The location of the status label in comparison to the progress view.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressHUDStatusPosition statusPosition</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/statusPosition</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressHUD/statusPosition</TokenIdentifier>
|
||||
<Abstract type="html">The location of the status label in comparison to the progress view.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressHUDStatusPosition statusPosition</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/statusPosition</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setOffsetFromCenter:</TokenIdentifier>
|
||||
<Abstract type="html">The offset distance of the HUD from the center of its superview.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) UIOffset offsetFromCenter</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/offsetFromCenter</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/offsetFromCenter</TokenIdentifier>
|
||||
<Abstract type="html">The offset distance of the HUD from the center of its superview.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) UIOffset offsetFromCenter</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/offsetFromCenter</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressHUD/offsetFromCenter</TokenIdentifier>
|
||||
<Abstract type="html">The offset distance of the HUD from the center of its superview.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) UIOffset offsetFromCenter</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/offsetFromCenter</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setContentMargin:</TokenIdentifier>
|
||||
<Abstract type="html">The margin between the edge of the HUD and it's progress view and status label.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat contentMargin</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/contentMargin</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/contentMargin</TokenIdentifier>
|
||||
<Abstract type="html">The margin between the edge of the HUD and it's progress view and status label.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat contentMargin</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/contentMargin</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressHUD/contentMargin</TokenIdentifier>
|
||||
<Abstract type="html">The margin between the edge of the HUD and it's progress view and status label.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat contentMargin</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/contentMargin</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setCornerRadius:</TokenIdentifier>
|
||||
<Abstract type="html">The corner radius of the HUD view.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat cornerRadius</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/cornerRadius</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/cornerRadius</TokenIdentifier>
|
||||
<Abstract type="html">The corner radius of the HUD view.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat cornerRadius</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/cornerRadius</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressHUD/cornerRadius</TokenIdentifier>
|
||||
<Abstract type="html">The corner radius of the HUD view.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat cornerRadius</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/cornerRadius</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setMaskType:</TokenIdentifier>
|
||||
<Abstract type="html">The type of mask the HUD displays over the view's content.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressHUDMaskType maskType</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/maskType</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/maskType</TokenIdentifier>
|
||||
<Abstract type="html">The type of mask the HUD displays over the view's content.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressHUDMaskType maskType</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/maskType</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressHUD/maskType</TokenIdentifier>
|
||||
<Abstract type="html">The type of mask the HUD displays over the view's content.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressHUDMaskType maskType</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/maskType</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setMaskColor:</TokenIdentifier>
|
||||
<Abstract type="html">The color of the HUD mask if set to Solid Color or Gradient.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *maskColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/maskColor</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/maskColor</TokenIdentifier>
|
||||
<Abstract type="html">The color of the HUD mask if set to Solid Color or Gradient.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *maskColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/maskColor</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressHUD/maskColor</TokenIdentifier>
|
||||
<Abstract type="html">The color of the HUD mask if set to Solid Color or Gradient.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *maskColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/maskColor</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setStatusColor:</TokenIdentifier>
|
||||
<Abstract type="html">The color of the status text.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *statusColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/statusColor</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/statusColor</TokenIdentifier>
|
||||
<Abstract type="html">The color of the status text.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *statusColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/statusColor</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressHUD/statusColor</TokenIdentifier>
|
||||
<Abstract type="html">The color of the status text.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *statusColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/statusColor</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setStatusFont:</TokenIdentifier>
|
||||
<Abstract type="html">The font to display the status label with.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIFont *statusFont</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/statusFont</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/statusFont</TokenIdentifier>
|
||||
<Abstract type="html">The font to display the status label with.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIFont *statusFont</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/statusFont</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressHUD/statusFont</TokenIdentifier>
|
||||
<Abstract type="html">The font to display the status label with.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIFont *statusFont</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/statusFont</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setProgressViewSize:</TokenIdentifier>
|
||||
<Abstract type="html">The size of the progress view.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGSize progressViewSize</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressViewSize</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/progressViewSize</TokenIdentifier>
|
||||
<Abstract type="html">The size of the progress view.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGSize progressViewSize</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressViewSize</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressHUD/progressViewSize</TokenIdentifier>
|
||||
<Abstract type="html">The size of the progress view.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGSize progressViewSize</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressViewSize</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setAnimationPoint:</TokenIdentifier>
|
||||
<Abstract type="html">The origin of the show/hide animation. show: will animate from this point, and hide: will animate to this point.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGPoint animationPoint</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationPoint</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/animationPoint</TokenIdentifier>
|
||||
<Abstract type="html">The origin of the show/hide animation. show: will animate from this point, and hide: will animate to this point.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGPoint animationPoint</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationPoint</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressHUD/animationPoint</TokenIdentifier>
|
||||
<Abstract type="html">The origin of the show/hide animation. show: will animate from this point, and hide: will animate to this point.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGPoint animationPoint</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationPoint</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setAnimationDuration:</TokenIdentifier>
|
||||
<Abstract type="html">The durations of animations in seconds.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationDuration</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationDuration</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/animationDuration</TokenIdentifier>
|
||||
<Abstract type="html">The durations of animations in seconds.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationDuration</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationDuration</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressHUD/animationDuration</TokenIdentifier>
|
||||
<Abstract type="html">The durations of animations in seconds.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationDuration</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationDuration</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setStatus:</TokenIdentifier>
|
||||
<Abstract type="html">The text displayed in the HUD to provide more information to the user.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSString *status</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/status</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/status</TokenIdentifier>
|
||||
<Abstract type="html">The text displayed in the HUD to provide more information to the user.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSString *status</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/status</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressHUD/status</TokenIdentifier>
|
||||
<Abstract type="html">The text displayed in the HUD to provide more information to the user.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSString *status</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/status</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setMinimumSize:</TokenIdentifier>
|
||||
<Abstract type="html">Minimum size of the HUD.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGSize minimumSize</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/minimumSize</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/minimumSize</TokenIdentifier>
|
||||
<Abstract type="html">Minimum size of the HUD.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGSize minimumSize</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/minimumSize</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressHUD/minimumSize</TokenIdentifier>
|
||||
<Abstract type="html">Minimum size of the HUD.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGSize minimumSize</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/minimumSize</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setDismissAfterAction:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not to dismiss automatically after an action is performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL dismissAfterAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/dismissAfterAction</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/dismissAfterAction</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not to dismiss automatically after an action is performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL dismissAfterAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/dismissAfterAction</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressHUD/dismissAfterAction</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not to dismiss automatically after an action is performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL dismissAfterAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/dismissAfterAction</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/isVisible</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the HUD is currenty visible.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (BOOL)isVisible</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/isVisible</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setShouldAutorotate:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the HUD will auto rotate to the device orientation.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL shouldAutorotate</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/shouldAutorotate</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/shouldAutorotate</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the HUD will auto rotate to the device orientation.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL shouldAutorotate</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/shouldAutorotate</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressHUD/shouldAutorotate</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the HUD will auto rotate to the device orientation.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL shouldAutorotate</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/shouldAutorotate</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setOrientation:</TokenIdentifier>
|
||||
<Abstract type="html">The orientation of the HUD.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) UIInterfaceOrientation orientation</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/orientation</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/orientation</TokenIdentifier>
|
||||
<Abstract type="html">The orientation of the HUD.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) UIInterfaceOrientation orientation</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/orientation</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressHUD/orientation</TokenIdentifier>
|
||||
<Abstract type="html">The orientation of the HUD.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) UIInterfaceOrientation orientation</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/orientation</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/setProgress:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Set the progress of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setProgress:(CGFloat)progress animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>progress</Name>
|
||||
<Abstract type="html">The progress to show on the progress view.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the progress change.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/setProgress:animated:</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/performAction:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Perform the given action if defined. Usually showing success or failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>action</Name>
|
||||
<Abstract type="html">The action to perform.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the change</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/performAction:animated:</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/show:</TokenIdentifier>
|
||||
<Abstract type="html">Show the progress HUD.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)show:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the change</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/show:</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/hide:</TokenIdentifier>
|
||||
<Abstract type="html">Hide the progress HUD.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)hide:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the change</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/hide:</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressHUD/dismiss:</TokenIdentifier>
|
||||
<Abstract type="html">Dismiss the progress HUD and remove it from its superview.</Abstract>
|
||||
<DeclaredIn>M13ProgressHUD.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)dismiss:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the change</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/dismiss:</Anchor>
|
||||
<NodeRef refid="2"/>
|
||||
</Token>
|
||||
|
||||
|
||||
</File>
|
||||
</Tokens>
|
||||
@@ -1,237 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Tokens version="1.0">
|
||||
<File path="Classes/M13ProgressView.html">
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/cl/M13ProgressView</TokenIdentifier>
|
||||
<Abstract type="html">A standardized base upon which to build progress views for applications. This allows one to use any subclass progress view in any component that use this standard.</Abstract>
|
||||
<DeclaredIn>M13ProgressView.h</DeclaredIn>
|
||||
|
||||
|
||||
<NodeRef refid="3"/>
|
||||
</Token>
|
||||
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressView/setPrimaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The primary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressView.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *primaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/primaryColor</Anchor>
|
||||
<NodeRef refid="3"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressView/primaryColor</TokenIdentifier>
|
||||
<Abstract type="html">The primary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressView.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *primaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/primaryColor</Anchor>
|
||||
<NodeRef refid="3"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressView/primaryColor</TokenIdentifier>
|
||||
<Abstract type="html">The primary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressView.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *primaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/primaryColor</Anchor>
|
||||
<NodeRef refid="3"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressView/setSecondaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The secondary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressView.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *secondaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/secondaryColor</Anchor>
|
||||
<NodeRef refid="3"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressView/secondaryColor</TokenIdentifier>
|
||||
<Abstract type="html">The secondary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressView.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *secondaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/secondaryColor</Anchor>
|
||||
<NodeRef refid="3"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressView/secondaryColor</TokenIdentifier>
|
||||
<Abstract type="html">The secondary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressView.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *secondaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/secondaryColor</Anchor>
|
||||
<NodeRef refid="3"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressView/setIndeterminate:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the progress view is indeterminate.</Abstract>
|
||||
<DeclaredIn>M13ProgressView.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL indeterminate</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/indeterminate</Anchor>
|
||||
<NodeRef refid="3"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressView/indeterminate</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the progress view is indeterminate.</Abstract>
|
||||
<DeclaredIn>M13ProgressView.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL indeterminate</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/indeterminate</Anchor>
|
||||
<NodeRef refid="3"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressView/indeterminate</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the progress view is indeterminate.</Abstract>
|
||||
<DeclaredIn>M13ProgressView.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL indeterminate</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/indeterminate</Anchor>
|
||||
<NodeRef refid="3"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressView/setAnimationDuration:</TokenIdentifier>
|
||||
<Abstract type="html">The durations of animations in seconds.</Abstract>
|
||||
<DeclaredIn>M13ProgressView.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationDuration</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationDuration</Anchor>
|
||||
<NodeRef refid="3"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressView/animationDuration</TokenIdentifier>
|
||||
<Abstract type="html">The durations of animations in seconds.</Abstract>
|
||||
<DeclaredIn>M13ProgressView.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationDuration</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationDuration</Anchor>
|
||||
<NodeRef refid="3"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressView/animationDuration</TokenIdentifier>
|
||||
<Abstract type="html">The durations of animations in seconds.</Abstract>
|
||||
<DeclaredIn>M13ProgressView.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationDuration</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationDuration</Anchor>
|
||||
<NodeRef refid="3"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressView/setProgress:</TokenIdentifier>
|
||||
<Abstract type="html">The progress displayed to the user.</Abstract>
|
||||
<DeclaredIn>M13ProgressView.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readonly) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="3"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressView/progress</TokenIdentifier>
|
||||
<Abstract type="html">The progress displayed to the user.</Abstract>
|
||||
<DeclaredIn>M13ProgressView.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readonly) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="3"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressView/progress</TokenIdentifier>
|
||||
<Abstract type="html">The progress displayed to the user.</Abstract>
|
||||
<DeclaredIn>M13ProgressView.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readonly) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="3"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressView/setProgress:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Set the progress of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressView.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setProgress:(CGFloat)progress animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>progress</Name>
|
||||
<Abstract type="html">The progress to show on the progress view.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the progress change.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/setProgress:animated:</Anchor>
|
||||
<NodeRef refid="3"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressView/performAction:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Perform the given action if defined. Usually showing success or failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressView.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>action</Name>
|
||||
<Abstract type="html">The action to perform.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the change</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/performAction:animated:</Anchor>
|
||||
<NodeRef refid="3"/>
|
||||
</Token>
|
||||
|
||||
|
||||
</File>
|
||||
</Tokens>
|
||||
@@ -1,669 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Tokens version="1.0">
|
||||
<File path="Classes/M13ProgressViewBar.html">
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/cl/M13ProgressViewBar</TokenIdentifier>
|
||||
<Abstract type="html">A replacement for UIProgressBar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/setProgressDirection:</TokenIdentifier>
|
||||
<Abstract type="html">The direction of progress. (What direction the fill proceeds in.)</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewBarProgressDirection progressDirection</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressDirection</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/progressDirection</TokenIdentifier>
|
||||
<Abstract type="html">The direction of progress. (What direction the fill proceeds in.)</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewBarProgressDirection progressDirection</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressDirection</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBar/progressDirection</TokenIdentifier>
|
||||
<Abstract type="html">The direction of progress. (What direction the fill proceeds in.)</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewBarProgressDirection progressDirection</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressDirection</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/setProgressBarThickness:</TokenIdentifier>
|
||||
<Abstract type="html">The thickness of the progress bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat progressBarThickness</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressBarThickness</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/progressBarThickness</TokenIdentifier>
|
||||
<Abstract type="html">The thickness of the progress bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat progressBarThickness</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressBarThickness</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBar/progressBarThickness</TokenIdentifier>
|
||||
<Abstract type="html">The thickness of the progress bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat progressBarThickness</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressBarThickness</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/setSuccessColor:</TokenIdentifier>
|
||||
<Abstract type="html">The color the bar changes to for the success action.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *successColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/successColor</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/successColor</TokenIdentifier>
|
||||
<Abstract type="html">The color the bar changes to for the success action.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *successColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/successColor</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBar/successColor</TokenIdentifier>
|
||||
<Abstract type="html">The color the bar changes to for the success action.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *successColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/successColor</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/setFailureColor:</TokenIdentifier>
|
||||
<Abstract type="html">The color the bar changes to for the failure action.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *failureColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/failureColor</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/failureColor</TokenIdentifier>
|
||||
<Abstract type="html">The color the bar changes to for the failure action.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *failureColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/failureColor</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBar/failureColor</TokenIdentifier>
|
||||
<Abstract type="html">The color the bar changes to for the failure action.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *failureColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/failureColor</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/setShowPercentage:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not to show percentage text. If shown exterior to the progress bar, the progress bar is shifted to make room for the text.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL showPercentage</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/showPercentage</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/showPercentage</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not to show percentage text. If shown exterior to the progress bar, the progress bar is shifted to make room for the text.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL showPercentage</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/showPercentage</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBar/showPercentage</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not to show percentage text. If shown exterior to the progress bar, the progress bar is shifted to make room for the text.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL showPercentage</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/showPercentage</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/setPercentagePosition:</TokenIdentifier>
|
||||
<Abstract type="html">The location of the percentage in comparison to the progress bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewBarPercentagePosition percentagePosition</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/percentagePosition</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/percentagePosition</TokenIdentifier>
|
||||
<Abstract type="html">The location of the percentage in comparison to the progress bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewBarPercentagePosition percentagePosition</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/percentagePosition</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBar/percentagePosition</TokenIdentifier>
|
||||
<Abstract type="html">The location of the percentage in comparison to the progress bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewBarPercentagePosition percentagePosition</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/percentagePosition</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/setPrimaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The primary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setPrimaryColor:(UIColor *)primaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setPrimaryColor:</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/setSecondaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The secondary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setSecondaryColor:(UIColor *)secondaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setSecondaryColor:</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/setProgress:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Set the progress of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setProgress:(CGFloat)progress animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>progress</Name>
|
||||
<Abstract type="html">The progress to show on the progress view.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the progress change.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/setProgress:animated:</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/performAction:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Perform the given action if defined. Usually showing success or failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>action</Name>
|
||||
<Abstract type="html">The action to perform.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the change</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/performAction:animated:</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/setIndeterminate:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the progress view is indeterminate.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setIndeterminate:(BOOL)indeterminate</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setIndeterminate:</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/setPercentageFormatter:</TokenIdentifier>
|
||||
<Abstract type="html">The number formatter to display the progress percentage.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSNumberFormatter *percentageFormatter</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/percentageFormatter</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/percentageFormatter</TokenIdentifier>
|
||||
<Abstract type="html">The number formatter to display the progress percentage.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSNumberFormatter *percentageFormatter</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/percentageFormatter</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBar/percentageFormatter</TokenIdentifier>
|
||||
<Abstract type="html">The number formatter to display the progress percentage.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSNumberFormatter *percentageFormatter</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/percentageFormatter</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/setPercentageLabel:</TokenIdentifier>
|
||||
<Abstract type="html">The label that shows the percentage.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CATextLayer *percentageLabel</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/percentageLabel</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/percentageLabel</TokenIdentifier>
|
||||
<Abstract type="html">The label that shows the percentage.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CATextLayer *percentageLabel</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/percentageLabel</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBar/percentageLabel</TokenIdentifier>
|
||||
<Abstract type="html">The label that shows the percentage.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CATextLayer *percentageLabel</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/percentageLabel</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/setAnimationFromValue:</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBar/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/setAnimationToValue:</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBar/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/setAnimationStartTime:</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBar/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/setDisplayLink:</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBar/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/setProgressBar:</TokenIdentifier>
|
||||
<Abstract type="html">The view of the progress bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIView *progressBar</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressBar</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/progressBar</TokenIdentifier>
|
||||
<Abstract type="html">The view of the progress bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIView *progressBar</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressBar</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBar/progressBar</TokenIdentifier>
|
||||
<Abstract type="html">The view of the progress bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIView *progressBar</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressBar</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/setProgressLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The layer that displays progress in the progress bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *progressLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressLayer</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/progressLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that displays progress in the progress bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *progressLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressLayer</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBar/progressLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that displays progress in the progress bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *progressLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressLayer</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/setIndeterminateLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The layer that is used to animate indeterminate progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CALayer *indeterminateLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/indeterminateLayer</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/indeterminateLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that is used to animate indeterminate progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CALayer *indeterminateLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/indeterminateLayer</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBar/indeterminateLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that is used to animate indeterminate progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CALayer *indeterminateLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/indeterminateLayer</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/setCurrentAction:</TokenIdentifier>
|
||||
<Abstract type="html">The action currently being performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewAction currentAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/currentAction</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/currentAction</TokenIdentifier>
|
||||
<Abstract type="html">The action currently being performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewAction currentAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/currentAction</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBar/currentAction</TokenIdentifier>
|
||||
<Abstract type="html">The action currently being performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewAction currentAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/currentAction</Anchor>
|
||||
<NodeRef refid="4"/>
|
||||
</Token>
|
||||
|
||||
|
||||
</File>
|
||||
</Tokens>
|
||||
@@ -1,669 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Tokens version="1.0">
|
||||
<File path="Classes/M13ProgressViewBorderedBar.html">
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/cl/M13ProgressViewBorderedBar</TokenIdentifier>
|
||||
<Abstract type="html">A Progress bar with a thick border.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.h</DeclaredIn>
|
||||
|
||||
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/setProgressDirection:</TokenIdentifier>
|
||||
<Abstract type="html">The direction of progress. (What direction the fill proceeds in.)</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewBorderedBarProgressDirection progressDirection</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressDirection</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/progressDirection</TokenIdentifier>
|
||||
<Abstract type="html">The direction of progress. (What direction the fill proceeds in.)</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewBorderedBarProgressDirection progressDirection</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressDirection</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBorderedBar/progressDirection</TokenIdentifier>
|
||||
<Abstract type="html">The direction of progress. (What direction the fill proceeds in.)</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewBorderedBarProgressDirection progressDirection</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressDirection</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/setCornerType:</TokenIdentifier>
|
||||
<Abstract type="html">The type of corner to display on the bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewBorderedBarCornerType cornerType</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/cornerType</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/cornerType</TokenIdentifier>
|
||||
<Abstract type="html">The type of corner to display on the bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewBorderedBarCornerType cornerType</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/cornerType</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBorderedBar/cornerType</TokenIdentifier>
|
||||
<Abstract type="html">The type of corner to display on the bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewBorderedBarCornerType cornerType</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/cornerType</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/setCornerRadius:</TokenIdentifier>
|
||||
<Abstract type="html">The corner radius of the ber if the corner type is set to Rounded.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat cornerRadius</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/cornerRadius</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/cornerRadius</TokenIdentifier>
|
||||
<Abstract type="html">The corner radius of the ber if the corner type is set to Rounded.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat cornerRadius</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/cornerRadius</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBorderedBar/cornerRadius</TokenIdentifier>
|
||||
<Abstract type="html">The corner radius of the ber if the corner type is set to Rounded.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat cornerRadius</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/cornerRadius</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/setBorderWidth:</TokenIdentifier>
|
||||
<Abstract type="html">The border width of the progress bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat borderWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/borderWidth</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/borderWidth</TokenIdentifier>
|
||||
<Abstract type="html">The border width of the progress bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat borderWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/borderWidth</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBorderedBar/borderWidth</TokenIdentifier>
|
||||
<Abstract type="html">The border width of the progress bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat borderWidth</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/borderWidth</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/setSuccessColor:</TokenIdentifier>
|
||||
<Abstract type="html">The color the bar changes to for the success action.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *successColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/successColor</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/successColor</TokenIdentifier>
|
||||
<Abstract type="html">The color the bar changes to for the success action.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *successColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/successColor</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBorderedBar/successColor</TokenIdentifier>
|
||||
<Abstract type="html">The color the bar changes to for the success action.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *successColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/successColor</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/setFailureColor:</TokenIdentifier>
|
||||
<Abstract type="html">The color the bar changes to for the failure action.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *failureColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/failureColor</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/failureColor</TokenIdentifier>
|
||||
<Abstract type="html">The color the bar changes to for the failure action.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *failureColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/failureColor</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBorderedBar/failureColor</TokenIdentifier>
|
||||
<Abstract type="html">The color the bar changes to for the failure action.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *failureColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/failureColor</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/setPrimaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The primary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setPrimaryColor:(UIColor *)primaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setPrimaryColor:</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/setSecondaryColor:</TokenIdentifier>
|
||||
<Abstract type="html">The secondary color of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setSecondaryColor:(UIColor *)secondaryColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setSecondaryColor:</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/setProgress:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Set the progress of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setProgress:(CGFloat)progress animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>progress</Name>
|
||||
<Abstract type="html">The progress to show on the progress view.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the progress change.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/setProgress:animated:</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/performAction:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Perform the given action if defined. Usually showing success or failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>action</Name>
|
||||
<Abstract type="html">The action to perform.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the change</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/performAction:animated:</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/setIndeterminate:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the progress view is indeterminate.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setIndeterminate:(BOOL)indeterminate</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setIndeterminate:</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/setAnimationFromValue:</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBorderedBar/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/setAnimationToValue:</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBorderedBar/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/setAnimationStartTime:</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBorderedBar/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/setDisplayLink:</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBorderedBar/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/setProgressSuperLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The layer that contains the progress layer. That also masks the progress layer.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CALayer *progressSuperLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressSuperLayer</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/progressSuperLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that contains the progress layer. That also masks the progress layer.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CALayer *progressSuperLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressSuperLayer</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBorderedBar/progressSuperLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that contains the progress layer. That also masks the progress layer.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CALayer *progressSuperLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressSuperLayer</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/setProgressLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The layer that displays progress in the progress bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *progressLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressLayer</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/progressLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that displays progress in the progress bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *progressLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressLayer</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBorderedBar/progressLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that displays progress in the progress bar.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *progressLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressLayer</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/setMaskLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The mask layer for the progress layer.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *maskLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/maskLayer</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/maskLayer</TokenIdentifier>
|
||||
<Abstract type="html">The mask layer for the progress layer.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *maskLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/maskLayer</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBorderedBar/maskLayer</TokenIdentifier>
|
||||
<Abstract type="html">The mask layer for the progress layer.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *maskLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/maskLayer</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/setBackgroundLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The background layer that displays the border.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *backgroundLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundLayer</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/backgroundLayer</TokenIdentifier>
|
||||
<Abstract type="html">The background layer that displays the border.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *backgroundLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundLayer</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBorderedBar/backgroundLayer</TokenIdentifier>
|
||||
<Abstract type="html">The background layer that displays the border.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CAShapeLayer *backgroundLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/backgroundLayer</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/setIndeterminateLayer:</TokenIdentifier>
|
||||
<Abstract type="html">The layer that is used to animate indeterminate progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CALayer *indeterminateLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/indeterminateLayer</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/indeterminateLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that is used to animate indeterminate progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CALayer *indeterminateLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/indeterminateLayer</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBorderedBar/indeterminateLayer</TokenIdentifier>
|
||||
<Abstract type="html">The layer that is used to animate indeterminate progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) CALayer *indeterminateLayer</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/indeterminateLayer</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/setCurrentAction:</TokenIdentifier>
|
||||
<Abstract type="html">The action currently being performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewAction currentAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/currentAction</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/currentAction</TokenIdentifier>
|
||||
<Abstract type="html">The action currently being performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewAction currentAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/currentAction</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBorderedBar/currentAction</TokenIdentifier>
|
||||
<Abstract type="html">The action currently being performed.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewAction currentAction</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/currentAction</Anchor>
|
||||
<NodeRef refid="5"/>
|
||||
</Token>
|
||||
|
||||
|
||||
</File>
|
||||
</Tokens>
|
||||
@@ -1,384 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Tokens version="1.0">
|
||||
<File path="Classes/M13ProgressViewFilteredImage.html">
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/cl/M13ProgressViewFilteredImage</TokenIdentifier>
|
||||
<Abstract type="html">A progress view where progress is shown by changes in CIFilters.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.h</DeclaredIn>
|
||||
|
||||
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewFilteredImage/setProgressImage:</TokenIdentifier>
|
||||
<Abstract type="html">The image to use when showing progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIImage *progressImage</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressImage</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewFilteredImage/progressImage</TokenIdentifier>
|
||||
<Abstract type="html">The image to use when showing progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIImage *progressImage</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressImage</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewFilteredImage/progressImage</TokenIdentifier>
|
||||
<Abstract type="html">The image to use when showing progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIImage *progressImage</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressImage</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewFilteredImage/setProgressView:</TokenIdentifier>
|
||||
<Abstract type="html">The UIImageView that shows the progress image.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIImageView *progressView</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressView</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewFilteredImage/progressView</TokenIdentifier>
|
||||
<Abstract type="html">The UIImageView that shows the progress image.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIImageView *progressView</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressView</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewFilteredImage/progressView</TokenIdentifier>
|
||||
<Abstract type="html">The UIImageView that shows the progress image.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIImageView *progressView</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressView</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewFilteredImage/setFilters:</TokenIdentifier>
|
||||
<Abstract type="html">The array of CIFilters to apply to the image.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSArray *filters</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/filters</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewFilteredImage/filters</TokenIdentifier>
|
||||
<Abstract type="html">The array of CIFilters to apply to the image.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSArray *filters</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/filters</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewFilteredImage/filters</TokenIdentifier>
|
||||
<Abstract type="html">The array of CIFilters to apply to the image.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSArray *filters</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/filters</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewFilteredImage/setFilterParameters:</TokenIdentifier>
|
||||
<Abstract type="html">The dictionaries of dictionaries that coresspond to filter properties to be changed.
|
||||
NSArray
|
||||
|------ NSDictionary (Index matches the coresponding CIFilter in filters
|
||||
| |---- "Parameter Key" -> NSDictionary
|
||||
| | |------ "Start Value" -> NSNumber
|
||||
| | |------ "End Value" -> NSNumber
|
||||
| |---- "Parameter Key" -> NSDictionary
|
||||
| |------ "Start Value" -> NSNumber
|
||||
| |------ "End Value" -> NSNumber
|
||||
|------ NSDictionary ... </Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSArray *filterParameters</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/filterParameters</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewFilteredImage/filterParameters</TokenIdentifier>
|
||||
<Abstract type="html">The dictionaries of dictionaries that coresspond to filter properties to be changed.
|
||||
NSArray
|
||||
|------ NSDictionary (Index matches the coresponding CIFilter in filters
|
||||
| |---- "Parameter Key" -> NSDictionary
|
||||
| | |------ "Start Value" -> NSNumber
|
||||
| | |------ "End Value" -> NSNumber
|
||||
| |---- "Parameter Key" -> NSDictionary
|
||||
| |------ "Start Value" -> NSNumber
|
||||
| |------ "End Value" -> NSNumber
|
||||
|------ NSDictionary ... </Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSArray *filterParameters</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/filterParameters</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewFilteredImage/filterParameters</TokenIdentifier>
|
||||
<Abstract type="html">The dictionaries of dictionaries that coresspond to filter properties to be changed.
|
||||
NSArray
|
||||
|------ NSDictionary (Index matches the coresponding CIFilter in filters
|
||||
| |---- "Parameter Key" -> NSDictionary
|
||||
| | |------ "Start Value" -> NSNumber
|
||||
| | |------ "End Value" -> NSNumber
|
||||
| |---- "Parameter Key" -> NSDictionary
|
||||
| |------ "Start Value" -> NSNumber
|
||||
| |------ "End Value" -> NSNumber
|
||||
|------ NSDictionary ... </Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) NSArray *filterParameters</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/filterParameters</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewFilteredImage/setProgress:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Set the progress of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setProgress:(CGFloat)progress animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>progress</Name>
|
||||
<Abstract type="html">The progress to show on the progress view.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the progress change.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/setProgress:animated:</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewFilteredImage/performAction:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Perform the given action if defined. Usually showing success or failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>action</Name>
|
||||
<Abstract type="html">The action to perform.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the change</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/performAction:animated:</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewFilteredImage/setIndeterminate:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the progress view is indeterminate.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setIndeterminate:(BOOL)indeterminate</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setIndeterminate:</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewFilteredImage/setAnimationFromValue:</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewFilteredImage/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewFilteredImage/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewFilteredImage/setAnimationToValue:</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewFilteredImage/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewFilteredImage/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewFilteredImage/setAnimationStartTime:</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewFilteredImage/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewFilteredImage/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewFilteredImage/setDisplayLink:</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewFilteredImage/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewFilteredImage/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewFilteredImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="6"/>
|
||||
</Token>
|
||||
|
||||
|
||||
</File>
|
||||
</Tokens>
|
||||
@@ -1,393 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Tokens version="1.0">
|
||||
<File path="Classes/M13ProgressViewImage.html">
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/cl/M13ProgressViewImage</TokenIdentifier>
|
||||
<Abstract type="html">A progress bar where progress is shown by cutting an image.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.h</DeclaredIn>
|
||||
|
||||
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewImage/setProgressImage:</TokenIdentifier>
|
||||
<Abstract type="html">The image to use when showing progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIImage *progressImage</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressImage</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewImage/progressImage</TokenIdentifier>
|
||||
<Abstract type="html">The image to use when showing progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIImage *progressImage</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressImage</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewImage/progressImage</TokenIdentifier>
|
||||
<Abstract type="html">The image to use when showing progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIImage *progressImage</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressImage</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewImage/setProgressDirection:</TokenIdentifier>
|
||||
<Abstract type="html">The direction of progress. (What direction the fill proceeds in.)</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewImageProgressDirection progressDirection</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressDirection</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewImage/progressDirection</TokenIdentifier>
|
||||
<Abstract type="html">The direction of progress. (What direction the fill proceeds in.)</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewImageProgressDirection progressDirection</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressDirection</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewImage/progressDirection</TokenIdentifier>
|
||||
<Abstract type="html">The direction of progress. (What direction the fill proceeds in.)</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewImageProgressDirection progressDirection</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressDirection</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewImage/setDrawGreyscaleBackground:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not to draw the greyscale background.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL drawGreyscaleBackground</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/drawGreyscaleBackground</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewImage/drawGreyscaleBackground</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not to draw the greyscale background.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL drawGreyscaleBackground</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/drawGreyscaleBackground</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewImage/drawGreyscaleBackground</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not to draw the greyscale background.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) BOOL drawGreyscaleBackground</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/drawGreyscaleBackground</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewImage/setProgress:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Set the progress of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setProgress:(CGFloat)progress animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>progress</Name>
|
||||
<Abstract type="html">The progress to show on the progress view.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the progress change.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/setProgress:animated:</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewImage/performAction:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Perform the given action if defined. Usually showing success or failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>action</Name>
|
||||
<Abstract type="html">The action to perform.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the change</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/performAction:animated:</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewImage/setIndeterminate:</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the progress view is indeterminate.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setIndeterminate:(BOOL)indeterminate</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/setIndeterminate:</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewImage/setAnimationFromValue:</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewImage/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewImage/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewImage/setAnimationToValue:</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewImage/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewImage/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewImage/setAnimationStartTime:</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewImage/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewImage/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewImage/setDisplayLink:</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewImage/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewImage/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewImage/setProgress:</TokenIdentifier>
|
||||
<Abstract type="html">Allow us to write to the progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewImage/progress</TokenIdentifier>
|
||||
<Abstract type="html">Allow us to write to the progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewImage/progress</TokenIdentifier>
|
||||
<Abstract type="html">Allow us to write to the progress.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progress</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewImage/setProgressView:</TokenIdentifier>
|
||||
<Abstract type="html">The UIImageView that shows the progress image.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIImageView *progressView</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressView</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewImage/progressView</TokenIdentifier>
|
||||
<Abstract type="html">The UIImageView that shows the progress image.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIImageView *progressView</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressView</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewImage/progressView</TokenIdentifier>
|
||||
<Abstract type="html">The UIImageView that shows the progress image.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewImage.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIImageView *progressView</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/progressView</Anchor>
|
||||
<NodeRef refid="7"/>
|
||||
</Token>
|
||||
|
||||
|
||||
</File>
|
||||
</Tokens>
|
||||
@@ -1,469 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Tokens version="1.0">
|
||||
<File path="Classes/M13ProgressViewLetterpress.html">
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/cl/M13ProgressViewLetterpress</TokenIdentifier>
|
||||
<Abstract type="html"></Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.h</DeclaredIn>
|
||||
|
||||
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/setNumberOfGridPoints:</TokenIdentifier>
|
||||
<Abstract type="html">The number of grid points in each direction.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGPoint numberOfGridPoints</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/numberOfGridPoints</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/numberOfGridPoints</TokenIdentifier>
|
||||
<Abstract type="html">The number of grid points in each direction.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGPoint numberOfGridPoints</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/numberOfGridPoints</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewLetterpress/numberOfGridPoints</TokenIdentifier>
|
||||
<Abstract type="html">The number of grid points in each direction.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGPoint numberOfGridPoints</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/numberOfGridPoints</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/setPointShape:</TokenIdentifier>
|
||||
<Abstract type="html">The shape of the grid points.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewLetterpressPointShape pointShape</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/pointShape</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/pointShape</TokenIdentifier>
|
||||
<Abstract type="html">The shape of the grid points.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewLetterpressPointShape pointShape</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/pointShape</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewLetterpress/pointShape</TokenIdentifier>
|
||||
<Abstract type="html">The shape of the grid points.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewLetterpressPointShape pointShape</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/pointShape</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/setPointSpacing:</TokenIdentifier>
|
||||
<Abstract type="html">The amount of space between the grid points.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat pointSpacing</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/pointSpacing</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/pointSpacing</TokenIdentifier>
|
||||
<Abstract type="html">The amount of space between the grid points.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat pointSpacing</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/pointSpacing</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewLetterpress/pointSpacing</TokenIdentifier>
|
||||
<Abstract type="html">The amount of space between the grid points.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat pointSpacing</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/pointSpacing</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/setNotchSize:</TokenIdentifier>
|
||||
<Abstract type="html">The size of the notch to carve out on one side.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGSize notchSize</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/notchSize</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/notchSize</TokenIdentifier>
|
||||
<Abstract type="html">The size of the notch to carve out on one side.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGSize notchSize</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/notchSize</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewLetterpress/notchSize</TokenIdentifier>
|
||||
<Abstract type="html">The size of the notch to carve out on one side.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGSize notchSize</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/notchSize</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/setSpringConstant:</TokenIdentifier>
|
||||
<Abstract type="html">The spring constant that defines the amount of "spring" the progress view has in its animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat springConstant</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/springConstant</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/springConstant</TokenIdentifier>
|
||||
<Abstract type="html">The spring constant that defines the amount of "spring" the progress view has in its animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat springConstant</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/springConstant</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewLetterpress/springConstant</TokenIdentifier>
|
||||
<Abstract type="html">The spring constant that defines the amount of "spring" the progress view has in its animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat springConstant</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/springConstant</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/setDampingCoefficient:</TokenIdentifier>
|
||||
<Abstract type="html">The constant that determines how long the progress view "bounces" for.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat dampingCoefficient</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/dampingCoefficient</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/dampingCoefficient</TokenIdentifier>
|
||||
<Abstract type="html">The constant that determines how long the progress view "bounces" for.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat dampingCoefficient</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/dampingCoefficient</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewLetterpress/dampingCoefficient</TokenIdentifier>
|
||||
<Abstract type="html">The constant that determines how long the progress view "bounces" for.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat dampingCoefficient</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/dampingCoefficient</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/setMass:</TokenIdentifier>
|
||||
<Abstract type="html">The constant that determines how much the springConstant and dampingCoefficent affect the animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat mass</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/mass</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/mass</TokenIdentifier>
|
||||
<Abstract type="html">The constant that determines how much the springConstant and dampingCoefficent affect the animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat mass</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/mass</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewLetterpress/mass</TokenIdentifier>
|
||||
<Abstract type="html">The constant that determines how much the springConstant and dampingCoefficent affect the animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat mass</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/mass</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/setProgress:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Set the progress of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setProgress:(CGFloat)progress animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>progress</Name>
|
||||
<Abstract type="html">The progress to show on the progress view.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the progress change.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/setProgress:animated:</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/setAnimationFromValue:</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewLetterpress/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/setAnimationToValue:</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewLetterpress/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/setAnimationStartTime:</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewLetterpress/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/setDisplayLink:</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewLetterpress/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/setSpringDisplayLink:</TokenIdentifier>
|
||||
<Abstract type="html">The display link that controls the spring animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *springDisplayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/springDisplayLink</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewLetterpress/springDisplayLink</TokenIdentifier>
|
||||
<Abstract type="html">The display link that controls the spring animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *springDisplayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/springDisplayLink</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewLetterpress/springDisplayLink</TokenIdentifier>
|
||||
<Abstract type="html">The display link that controls the spring animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewLetterpress.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *springDisplayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/springDisplayLink</Anchor>
|
||||
<NodeRef refid="8"/>
|
||||
</Token>
|
||||
|
||||
|
||||
</File>
|
||||
</Tokens>
|
||||
@@ -1,453 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Tokens version="1.0">
|
||||
<File path="Classes/M13ProgressViewMetro.html">
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/cl/M13ProgressViewMetro</TokenIdentifier>
|
||||
<Abstract type="html">A progress view based off of Windows 8's progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/setNumberOfDots:</TokenIdentifier>
|
||||
<Abstract type="html">The number of dots in the animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) NSUInteger numberOfDots</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/numberOfDots</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/numberOfDots</TokenIdentifier>
|
||||
<Abstract type="html">The number of dots in the animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) NSUInteger numberOfDots</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/numberOfDots</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewMetro/numberOfDots</TokenIdentifier>
|
||||
<Abstract type="html">The number of dots in the animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) NSUInteger numberOfDots</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/numberOfDots</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/setAnimationShape:</TokenIdentifier>
|
||||
<Abstract type="html">The shape of the animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewMetroAnimationShape animationShape</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationShape</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/animationShape</TokenIdentifier>
|
||||
<Abstract type="html">The shape of the animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewMetroAnimationShape animationShape</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationShape</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewMetro/animationShape</TokenIdentifier>
|
||||
<Abstract type="html">The shape of the animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) M13ProgressViewMetroAnimationShape animationShape</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationShape</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/setDotSize:</TokenIdentifier>
|
||||
<Abstract type="html">The size of the dots</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGSize dotSize</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/dotSize</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/dotSize</TokenIdentifier>
|
||||
<Abstract type="html">The size of the dots</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGSize dotSize</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/dotSize</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewMetro/dotSize</TokenIdentifier>
|
||||
<Abstract type="html">The size of the dots</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGSize dotSize</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/dotSize</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/setMetroDot:</TokenIdentifier>
|
||||
<Abstract type="html">The dot to display.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) M13ProgressViewMetroDot *metroDot</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/metroDot</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/metroDot</TokenIdentifier>
|
||||
<Abstract type="html">The dot to display.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) M13ProgressViewMetroDot *metroDot</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/metroDot</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewMetro/metroDot</TokenIdentifier>
|
||||
<Abstract type="html">The dot to display.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) M13ProgressViewMetroDot *metroDot</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/metroDot</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/setSuccessColor:</TokenIdentifier>
|
||||
<Abstract type="html">The color to show on success.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *successColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/successColor</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/successColor</TokenIdentifier>
|
||||
<Abstract type="html">The color to show on success.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *successColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/successColor</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewMetro/successColor</TokenIdentifier>
|
||||
<Abstract type="html">The color to show on success.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *successColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/successColor</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/setFailureColor:</TokenIdentifier>
|
||||
<Abstract type="html">The color to show on failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *failureColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/failureColor</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/failureColor</TokenIdentifier>
|
||||
<Abstract type="html">The color to show on failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *failureColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/failureColor</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewMetro/failureColor</TokenIdentifier>
|
||||
<Abstract type="html">The color to show on failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, retain) UIColor *failureColor</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/failureColor</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/isAnimating</TokenIdentifier>
|
||||
<Abstract type="html">Wether or not the progress view animating.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (BOOL)isAnimating</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/isAnimating</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/beginAnimating</TokenIdentifier>
|
||||
<Abstract type="html">Begin the animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)beginAnimating</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/beginAnimating</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/stopAnimating</TokenIdentifier>
|
||||
<Abstract type="html">End the animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.h</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)stopAnimating</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/stopAnimating</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/performAction:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Perform the given action if defined. Usually showing success or failure.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)performAction:(M13ProgressViewAction)action animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>action</Name>
|
||||
<Abstract type="html">The action to perform.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the change</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/performAction:animated:</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/setProgress:animated:</TokenIdentifier>
|
||||
<Abstract type="html">Set the progress of the M13ProgressView.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.m</DeclaredIn>
|
||||
|
||||
<Declaration>- (void)setProgress:(CGFloat)progress animated:(BOOL)animated</Declaration>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Name>progress</Name>
|
||||
<Abstract type="html">The progress to show on the progress view.</Abstract>
|
||||
</Parameter><Parameter>
|
||||
<Name>animated</Name>
|
||||
<Abstract type="html">Wether or not to animate the progress change.</Abstract>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
|
||||
<Anchor>//api/name/setProgress:animated:</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/setAnimationFromValue:</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewMetro/animationFromValue</TokenIdentifier>
|
||||
<Abstract type="html">The start progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationFromValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationFromValue</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/setAnimationToValue:</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewMetro/animationToValue</TokenIdentifier>
|
||||
<Abstract type="html">The end progress for the progress animation.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CGFloat animationToValue</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationToValue</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/setAnimationStartTime:</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewMetro/animationStartTime</TokenIdentifier>
|
||||
<Abstract type="html">The start time interval for the animaiton.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, assign) CFTimeInterval animationStartTime</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/animationStartTime</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/setDisplayLink:</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewMetro/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
<Token>
|
||||
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewMetro/displayLink</TokenIdentifier>
|
||||
<Abstract type="html">Link to the display to keep animations in sync.</Abstract>
|
||||
<DeclaredIn>M13ProgressViewMetro.m</DeclaredIn>
|
||||
|
||||
<Declaration>@property (nonatomic, strong) CADisplayLink *displayLink</Declaration>
|
||||
|
||||
|
||||
<Anchor>//api/name/displayLink</Anchor>
|
||||
<NodeRef refid="9"/>
|
||||
</Token>
|
||||
|
||||
|
||||
</File>
|
||||
</Tokens>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user