Author SHA1 Message Date
Brandon McQuilkin 64128d4703 Experimenting with property animators to control the animation. 2016-08-09 11:06:38 -04:00
Brandon McQuilkin 26cf461a5d Started progress bar.
Added base progress view class.
2016-08-09 08:16:55 -04:00
Brandon McQuilkin 6d88f8afa0 Started the base of M13ProgressSuite 2 2016-08-07 16:24:47 -04:00
Brandon McQuilkin 299f96ca60 Starting with a clean slate. 2016-08-07 11:04:30 -04:00
Brandon McQuilkin 71c237eec6 Merge pull request #82 from sunkehappy/patch-1
Remove one useless variable height
2015-09-13 14:23:13 -04:00
Calvin 53a3c25f91 Remove one useless variable height
The `height` variable is set but never used later in `UINavigationController+M13ProgressViewBar.m`. So I suggest to delete it currently. If we need this variable later, get the old logic from Git history.
2015-09-10 18:04:54 +08:00
Brandon McQuilkin 56f020ced6 Merge pull request #81 from mhaleem/master
Use Preprocessor Macro for App Extension target to avoid compile erro…
2015-09-07 18:55:20 -04:00
Mina 6000d1de0f Use Preprocessor Macro for App Extension target to avoid compile error due to [UIApplication sharedApplication].statusBarOrientation] - instead using simple solution based on Device size 2015-08-24 12:23:13 +02:00
Brandon McQuilkin cbfbb67581 Merge pull request #76 from qblu/master
Add support for carthage and dynamic frameworks
2015-08-11 18:29:38 -04:00
Brandon McQuilkin e2a9a7845c Merge pull request #72 from trunglee/master
Corner radius for progress view
2015-08-11 18:27:49 -04:00
Brandon McQuilkin 3431005616 Merge pull request #71 from harlanhaskins/master
Fixed progress width calculation
2015-08-11 18:26:51 -04:00
Rusty Zarse e0c35faea2 shared scheme again 2015-08-10 16:29:22 -04:00
Rusty Zarse 3e57c3d528 added framework support 2015-08-10 16:22:47 -04:00
Mike VanBeneden 140f453d7f Share scheme for Carthage support 2015-08-10 15:09:33 -04:00
Trung Lee dc822019d6 Corner radius for progress view
We want to customize corner radius for progress view. The corner radius
for progress view is dependent on progressViewThickness, it means we
can not customize it without changing progressViewThickness.
2015-07-20 11:38:04 +07:00
Harlan d3920a09a8 Fixed progress width calculation
Instead of using UIScreen, if possible use the topViewController's view property. This'll work much better if the view is within a UISplitViewController or if it's within a multitasking view on iOS 9.
2015-07-02 16:18:32 -04:00
Brandon McQuilkin 5665de3d54 Merge pull request #63 from benjerrim/patch-3
Update M13ProgressViewSegmentedRing.m
2015-05-18 11:36:26 -04:00
Brandon McQuilkin 58c502bd41 Merge pull request #69 from bojan/master
Xcode 6.3 compatibility fixes
2015-05-18 11:35:42 -04:00
Brandon McQuilkin 1b050b362b Merge pull request #61 from ianyh/master
Expose getIndeterminate in public API.
2015-05-18 11:34:36 -04:00
Bojan Dimovski c843d98f16 Remove the empty podfile. 2015-05-12 11:27:14 +02:00
Bojan Dimovski fe20de3392 Remove all files that should not be under source control. 2015-05-12 11:24:25 +02:00
Bojan Dimovski 1cd5dbec73 Replace the gitignore file with one including Xcode and Cocoapods files. 2015-05-12 11:20:45 +02:00
Bojan Dimovski 587609ab9d Update the image assets for the example project. 2015-05-12 11:18:56 +02:00
Bojan Dimovski d1e2d20b7b Remove a non-implemented method from the interface. 2015-05-12 11:12:32 +02:00
Bojan Dimovski c59c922d34 Fix a compiler warning. 2015-05-12 11:11:42 +02:00
Ben Jerrim 79f7523abd Update M13ProgressViewSegmentedRing.m
Fixed issue with unset Fill for primary colour
2015-03-01 11:50:53 +11:00
Ian Ynda-Hummel 57321a0f4a Expose getIndeterminate in public API. 2015-02-22 12:25:12 -05:00
Brandon McQuilkin 391e45172e Merge pull request #55 from Papercloud/issue/54
CADisplayLinks are removed by invalidating.
2015-02-14 18:38:13 -05:00
Mark Turner 3ced222828 CADisplayLinks are removed by invalidating rather than removing straight from run loop.
Resolves Marxon13/M13ProgressSuite#54
2015-01-21 18:03:44 +11:00
Marxon13 57cd39faf5 Addressed Issue #35 2014-12-12 23:04:30 -05:00
Brandon McQuilkin 040ce48aa7 Merge pull request #50 from ilidar/master
Fixed issue with hidden progress bar;
2014-11-24 16:19:24 -05:00
Denys Kotelovych 69f78a8aed Fixed issue with hidden progress bar; 2014-11-24 15:05:35 +02:00
Marxon13 8559bf8009 Updated pod spec again...
I can’t count…
2014-11-11 15:33:42 -05:00
Marxon13 35793527c2 Updated Podspec
I keep forgetting to do this…
2014-11-11 15:32:24 -05:00
Marxon13 efab7944b1 Added feature to segmented bar: Issue #49
Added the ability to give each segment a different color.
2014-11-11 15:30:48 -05:00
Brandon McQuilkin 4bc945e24f Merge pull request #47 from mohamedadly/master
- fix progressHUD to return top most HUD
2014-09-29 10:29:14 -04:00
madly 9b718a67c2 - fix progressHUD to return top most HUD 2014-09-15 15:23:20 +03:00
Brandon McQuilkin ccfc79f91c Merge pull request #43 from skydivedan/master
Changed “drawRect” of M13ProgressViewBar
2014-09-03 20:30:29 -04:00
Dan Morrow 10c375f74b changed “drawRect” so that if self.progress is 0, then we set the path of _progressLayer to nil. This will effectively “erase” progress. This is useful if M13ProgressViewBar is used in a reusable view, like a UITableViewCell. 2014-09-02 15:39:10 -04:00
Brandon McQuilkin e2df6b6210 Merge pull request #41 from hani-ibrahim/master
Fixing bugs
2014-08-29 09:43:51 -04:00
Hani Ibrahim 72a411a1f6 git ignore 2014-08-25 12:51:09 +03:00
Hani Ibrahim d78a949e91 fixing bug in M13ProgressViewRing
fixing bug in M13ProgressViewRing where backgroundRingWidth is not
working
2014-08-25 12:48:30 +03:00
Brandon McQuilkin 0cfae1e385 Merge pull request #40 from mkj-is/master
Fixes two Xcode 6 warnings
2014-08-16 11:47:23 -04:00
Matěj Kašpar Jirásek 59861e766c Fixes warning about NSCopying in Xcode 6 2014-08-15 16:50:27 +02:00
Matěj Kašpar Jirásek 3b158aa004 Fixes warning about incompatible types in Xcode 6 2014-08-15 16:49:53 +02:00
Brandon McQuilkin e90feadd11 Fixed Issue #34
Added Intrinsic content size for use with auto layout.
2014-07-17 11:55:46 -04:00
Brandon McQuilkin 98a2b35ccd Merge pull request #36 from jurysch/master
Clean up Xcode warnings, remove unused drawRect boilerplate
2014-07-16 16:17:25 -04:00
Justin Schottlaender 4fbb09ce52 Resolve various integer type mismatch Xcode warnings. 2014-07-11 14:22:03 -05:00
Justin Schottlaender ebe9998516 Mark progress properties as dynamic to prevent Xcode 5.1+ readwrite/readonly warnings. 2014-07-11 14:16:59 -05:00
Justin Schottlaender e0cf0b1fff Remove unused drawRect override from progress view base class. 2014-07-11 14:02:29 -05:00
Brandon McQuilkin ea5c49f00b Fixed Issue #33
Fixed issue that caused the metro progress bar to not be vertically
centered when displaying as a line.
2014-06-17 11:27:27 -04:00
Brandon McQuilkin c17a6fcb8d Fix for issue #26
Fix for random crashing caused by the CADisplayLink during animations.
2014-05-17 13:12:12 -04:00
Brandon McQuilkin 407dad941f More Updated Documentation 2014-05-12 09:30:15 -04:00
Brandon McQuilkin b0367b0ed4 Updated Documentation 2014-05-12 09:30:06 -04:00
Brandon McQuilkin 6ea8d8da4a Fixed Issue #32, and Added a new progress view. 2014-04-30 13:50:20 -04:00
Brandon McQuilkin 9d3c309bcf Merge pull request #29 from mkutgt72/bar_tint_color
Use bar tint color instead of white color for the second color of the indeterminate progress bar drawing.
2014-04-20 16:39:58 -04:00
Brandon McQuilkin 131c4f1b39 Merge pull request #30 from mkutgt72/master
Check interface orientation.
2014-04-20 16:38:33 -04:00
smolin_in 6284bd37bb Check interface orientation. For example, when I run my code on simulator deviceOrientationDidChange did called twice. Second time I receive UIDeviceOrientationUnknown. 2014-04-18 12:06:36 +06:00
smolin_in 003880b2e4 use bar tint colour instead of white color 2014-04-18 12:00:00 +06:00
Brandon McQuilkin 1585a9188f Updated pod spec to latest version 2014-04-09 11:47:58 -04:00
Brandon McQuilkin ea13ff3764 Fixed Issue #28
The UINavigationController progress bar now responds rotations of the
navigation controller.
2014-04-09 11:46:37 -04:00
Brandon McQuilkin 0268f9ffef Fixed issue #25
* Fixed a bug where the HUD would not respond to the animation point.
* The animation point now performs as described in the documentation.
2014-04-07 20:43:40 -04:00
Brandon McQuilkin 5edde39189 Fixed Frame Issues
Fixed issues from issue #11
2014-04-07 12:04:13 -04:00
Brandon McQuilkin f51af7bc16 Added App Icon and Launch Images 2014-04-06 21:05:37 -04:00
Brandon McQuilkin e7df7c585f Fixed podspec: Issue #1 2014-03-20 13:39:15 -04:00
Brandon McQuilkin aaf7c02cf8 Xcode project updates 2014-03-18 17:55:30 -04:00
Brandon McQuilkin 6134d42159 Fixed Issue #24 2014-03-18 17:48:26 -04:00
Brandon McQuilkin 40c0ee18ab Added radiative progress view 2014-03-16 12:38:05 -04:00
Brandon McQuilkin 7cec41f34e Added metro progress view. 2014-03-16 12:37:40 -04:00
Brandon McQuilkin 540cee6b0d Add show: method to HUD: Issue #13 2014-03-16 12:16:51 -04:00
Brandon McQuilkin 3291e7f8d6 Merge pull request #22 from brw12/centerhud
M13ProgressHUD: y origin of hud depends on its height, not on minimum he...
2014-03-07 13:22:36 -05:00
Brandon McQuilkin 91cf3d3562 Merge pull request #23 from brw12/noredrawblurs
M13ProgressHUD: do not call redrawBlurs on setting maskType = M13Progres...
2014-03-07 13:21:13 -05:00
Ben Wheeler 8faf5733cc M13ProgressHUD: y origin of hud depends on its height, not on minimum height, and doesn't move on screen when status message changes 2014-03-06 16:53:35 -05:00
Ben Wheeler b6c840a875 M13ProgressHUD: do not call redrawBlurs on setting maskType = M13ProgressHUDMaskTypeIOS7Blur 2014-03-06 16:46:21 -05:00
Brandon McQuilkin e4ae79fe7c Merge pull request #21 from caramdache/master
Make finishProgress and cancelProgress always use the main queue
2014-03-06 10:00:56 -05:00
Jean-Jacques abd68e61ea Make finishProgress and cancelProgress always use the main queue. 2014-02-26 17:08:56 +01:00
Jean-Jacques bcd263a4d4 Fix incorrect progress initialization, max should be 1.0, not 100 2014-02-26 15:39:13 +01:00
Brandon McQuilkin 4b4ec1dcf5 Fixed Issues #9, #14, #16
Also updated the documentation to reflect the changes.
2014-02-19 10:00:53 -05:00
Brandon McQuilkin 5be2d270c4 Merge pull request #15 from Legoless/master
Moved UIImageView to public.
2014-02-18 09:23:51 -05:00
Dal Rupnik 007c84081a Added public property for image progress view. 2014-02-18 10:54:25 +01:00
Dal Rupnik 56ded4860a Update M13ProgressViewFilteredImage.m 2014-02-18 10:53:54 +01:00
Brandon McQuilkin 9db648ea54 Merge pull request #12 from mstrchrstphr/master
Progress Bar indeterminate mode color can now be changed.
2014-02-17 09:02:01 -05:00
Christopher Constable 6e7e5ce841 Updated ProgressViewBar so setting the primary color also changes the indeterminate-mode's color. 2014-02-04 09:20:36 -05:00
Brandon McQuilkin 2f5fd3d9cf Merge pull request #10 from DinosaurDad/master
A couple of fixes, and a new animationPoint property for the HUD
2014-01-30 06:55:29 -08:00
Brandon McQuilkin cfef87c816 Merge pull request #8 from zvonicek/master
Fixed issue with HUD when there is no label text set
2014-01-30 06:53:58 -08:00
Matt Palcic 1e2fbca501 Fix blurry rendering in the progress HUD. 2014-01-29 15:52:44 -05:00
Matt Palcic 5ffd537ef0 Fix some leaks and an uninitialized variable, based on warnings from the clang analyzer. 2014-01-29 15:50:41 -05:00
Matt Palcic 577c40c9a8 Add an animation point so that show/hide animations are consistent. 2014-01-29 15:49:45 -05:00
Petr Zvonicek 1a2f74e079 Fixed issue with HUD when there is no label text set
In this case HUD didn’t show up due to the missing backgroundRect
2014-01-29 16:22:40 +01:00
Brandon McQuilkin 6c592c29d3 One more read me edit 2014-01-28 10:41:05 -05:00
Brandon McQuilkin 5afad57276 Missed one animation 2014-01-28 10:40:05 -05:00
Brandon McQuilkin 0e5643520b Fixed two animations 2014-01-28 10:38:03 -05:00
Brandon McQuilkin 0c5ad485a8 Merge branch 'master' of https://github.com/Marxon13/M13ProgressSuite 2014-01-28 10:33:16 -05:00
Brandon McQuilkin b25ec19f95 Updated read me. 2014-01-28 10:33:07 -05:00
Brandon McQuilkin 3038a33e07 Merge pull request #7 from pabloquinteros/master
Fill color of M13ProgressViewPie changes when primary color is set.
2014-01-23 20:48:20 -08:00
Pablo Quinteros 32b8a587df Fill color of M13ProgressViewPie changes when primary color is set. 2014-01-23 17:10:23 -05:00
Brandon McQuilkin a236ce43f2 fixed podspec 2014-01-21 13:15:33 -05:00
174 changed files with 713 additions and 50755 deletions
+63
View File
@@ -0,0 +1,63 @@
#####
# OS X temporary files that should never be committed
.DS_Store
*.swp
*.lock
profile
####
# Xcode temporary files that should never be committed
*~.nib
####
# Xcode build files
DerivedData/
build/
Builds/
#####
# Xcode private settings (window sizes, bookmarks, breakpoints, custom executables, smart groups)
*.pbxuser
*.mode1v3
*.mode2v3
*.perspectivev3
!default.pbxuser
!default.mode1v3
!default.mode2v3
!default.perspectivev3
####
# Xcode 4 - semi-personal settings, often included in workspaces
xcuserdata
####
# XCode 4 workspaces - more detailed
!xcshareddata
!default.xcworkspace
*.xcworkspacedata
####
# XCode 4 build-schemes
!xcschemes
####
# Xcode 4 - Deprecated classes
*.moved-aside
####
# Xcode 5 - Source Control files
*.xccheckout
####
# AppCode
.idea/
####
# Other Xcode files
profile
*.hmap
*.ipa
####
# CocoaPods
Pods/
-69
View File
@@ -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
-344
View File
@@ -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
-115
View File
@@ -1,115 +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;
/**@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;
/**@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;
/**@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.
@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
-703
View File
@@ -1,703 +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;
}
#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;
}
- (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;
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 setNeedsLayout];
[self setNeedsDisplay];
//Animate the HUD on screen
[CATransaction begin];
CABasicAnimation *fadeAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
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.fromValue = [NSNumber numberWithFloat:0.0];
scaleAnimation.toValue = [NSNumber numberWithFloat:1.0];
scaleAnimation.removedOnCompletion = YES;
[backgroundView.layer addAnimation:scaleAnimation forKey:@"transformAnimation"];
[CATransaction commit];
}
- (void)hide:(BOOL)animated
{
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;
[backgroundView.layer addAnimation:scaleAnimation forKey:@"transformAnimation"];
}
- (void)dismiss:(BOOL)animated
{
[self hide:animated];
}
#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 {
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^{
[self setNeedsLayout];
[self setNeedsDisplay];
});
}
#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
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 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 {
//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;
}
//Set the frame of the background and its subviews
[UIView animateWithDuration:_animationDuration animations:^{
backgroundView.frame = backgroundRect;
_progressView.frame = progressRect;
//Fade the label
statusLabel.alpha = 0.0;
} completion:^(BOOL finished) {
if (finished) {
//Set the label frame
statusLabel.frame = statusRect;
statusLabel.text = optimalStatusString;
[UIView animateWithDuration:_animationDuration animations:^{
//Show the label
statusLabel.alpha = 1.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) {
[self redrawBlurs];
}
}
- (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();
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
{
UIInterfaceOrientation orientation = UIApplication.sharedApplication.statusBarOrientation;
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:[M13ProgressView class]]) {
return view;
}
}
return nil;
}
@end
-107
View File
@@ -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
-278
View File
@@ -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;
int 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];
NSUInteger 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,38 +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 wether or not to show indeterminate.
@param indeterminate wether or not the progress bar is indeterminate.*/
- (void)setIndeterminate:(BOOL)indeterminate;
/**Fill the progress bar completely and remove it from display.*/
- (void)finishProgress;
/**Remove the progress bar from the display.*/
- (void)cancelProgress;
@end
@@ -1,362 +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;
@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 removeFromRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
[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 removeFromRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
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_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
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 removeFromRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
self.displayLink = nil;
dispatch_async(dispatch_get_main_queue(), ^{
[self setProgress:[self getAnimationToValue]];
});
return;
}
dispatch_async(dispatch_get_main_queue(), ^{
//Set progress
[self setProgress:([self getAnimationFromValue] + dt * ([self getAnimationToValue] - [self getAnimationFromValue]))];
});
});
}
- (void)finishProgress
{
if ([self getProgressView]) {
UIView *progressView = [self getProgressView];
[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];
}];
}];
}
}
- (void)cancelProgress
{
UIView *progressView = [self getProgressView];
if (progressView) {
[UIView animateWithDuration:0.5 animations:^{
progressView.alpha = 0;
} completion:^(BOOL finished) {
[progressView removeFromSuperview];
progressView.alpha = 1;
[self setTitle:nil];
}];
}
}
#pragma mark Drawing
- (void)showProgress
{
UIView *progressView = [self getProgressView];
[UIView animateWithDuration:.1 animations:^{
progressView.alpha = 1;
}];
}
- (void)updateProgress
{
//Create the progress view if it doesn't exist
UIView *progressView = [self getProgressView];
if(!progressView)
{
float y = self.navigationBar.frame.size.height - 2.5;
progressView = [[UIView alloc] initWithFrame:CGRectMake(0, y, 0, 2.5)];
progressView.backgroundColor = self.navigationBar.tintColor;
progressView.clipsToBounds = YES;
[self setProgressView:progressView];
[self.navigationBar addSubview:progressView];
}
if (progressView.superview == nil) {
[self.navigationBar addSubview:progressView];
}
if (![self getIndeterminate]) {
//Calculate the width of the progress view
float maxWidth = self.navigationBar.frame.size.width;
float progressWidth = maxWidth * [self getProgress];
//Set the frame of the progress view
CGRect progressFrame = progressView.frame;
progressFrame.size.width = progressWidth;
progressView.frame = progressFrame;
} else {
//Calculate the width of the progress view
float maxWidth = self.navigationBar.frame.size.width;
CGRect progressFrame = progressView.frame;
progressFrame.size.width = maxWidth;
progressView.frame = progressFrame;
}
}
- (void)drawIndeterminate
{
if ([self getIndeterminate]) {
//Get the indeterminate layer
CALayer *indeterminateLayer = [self getIndeterminateLayer];
if (!indeterminateLayer) {
//Create if needed
indeterminateLayer = [CALayer layer];
[self setIndeterminateLayer:indeterminateLayer];
}
//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
[self.navigationBar.tintColor setFill];
UIBezierPath *fillPath = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, stripeWidth * 4.0, stripeWidth * 4.0)];
[fillPath fill];
//Draw the stripes
[[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, self.navigationBar.frame.size.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) + (self.navigationBar.frame.size.width / 2.0), 2.5 / 2.0)];
animation.toValue = [NSValue valueWithCGPoint:CGPointMake(0 + (self.navigationBar.frame.size.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 > 100) {
progress = 100;
} else if (progress < 0) {
progress = 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];
});
}
}
- (CGFloat)getProgress
{
NSNumber *number = objc_getAssociatedObject(self, &progressKey);
return number.floatValue;
}
- (void)setAnimationDuration:(CGFloat)animationDuration
{
}
- (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);
}
@end
-52
View File
@@ -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
-46
View File
@@ -1,46 +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
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
// Drawing code
}
*/
@end
@@ -1,49 +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;
/**@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
-607
View File
@@ -1,607 +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;
/**Allow us to write to the progress.*/
@property (nonatomic, readwrite) CGFloat progress;
/**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;
_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 = _progressBarThickness / 2.0;
_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 = _progressBarThickness / 2.0;
_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;
[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;
//Update the corner radius
}
#pragma mark Actions
- (void)setProgress:(CGFloat)progress animated:(BOOL)animated
{
if (animated == NO) {
if (_displayLink) {
//Kill running animations
[_displayLink removeFromRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
_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 removeFromRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
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_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
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 removeFromRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
self.displayLink = nil;
dispatch_async(dispatch_get_main_queue(), ^{
[super setProgress:_animationToValue animated:NO];
[self setNeedsDisplay];
});
return;
}
dispatch_async(dispatch_get_main_queue(), ^{
//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;
}
- (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];
}
}
}
@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,450 +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;
/**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) 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 removeFromRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
_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 removeFromRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
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_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
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 removeFromRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
self.displayLink = nil;
dispatch_async(dispatch_get_main_queue(), ^{
[super setProgress:_animationToValue animated:NO];
[self setNeedsDisplay];
});
return;
}
dispatch_async(dispatch_get_main_queue(), ^{
//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];
}
}
#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;
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,42 +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 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,204 +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;
/**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 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 removeFromRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
_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 removeFromRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
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_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
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 removeFromRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
self.displayLink = nil;
dispatch_async(dispatch_get_main_queue(), ^{
[super setProgress:_animationToValue animated:NO];
[self setNeedsDisplay];
});
return;
}
dispatch_async(dispatch_get_main_queue(), ^{
//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;
}
#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,266 +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
#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 removeFromRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
_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 removeFromRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
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_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
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 removeFromRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
self.displayLink = nil;
dispatch_async(dispatch_get_main_queue(), ^{
[super setProgress:_animationToValue animated:NO];
[self setNeedsDisplay];
});
return;
}
dispatch_async(dispatch_get_main_queue(), ^{
//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;
}
#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,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
-500
View File
@@ -1,500 +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;
}
#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;
_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];
}
#pragma mark Actions
- (void)setProgress:(CGFloat)progress animated:(BOOL)animated
{
if (self.progress == progress) {
return;
}
if (animated == NO) {
if (_displayLink) {
//Kill running animations
[_displayLink removeFromRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
_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 removeFromRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
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_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
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 removeFromRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
self.displayLink = nil;
dispatch_async(dispatch_get_main_queue(), ^{
[super setProgress:_animationToValue animated:NO];
[self setNeedsDisplay];
});
return;
}
dispatch_async(dispatch_get_main_queue(), ^{
//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];
}
- (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,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
-518
View File
@@ -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;
/**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 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;
_progressRingWidthOverriden = 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 removeFromRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
_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 removeFromRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
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_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
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 removeFromRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
self.displayLink = nil;
dispatch_async(dispatch_get_main_queue(), ^{
[super setProgress:_animationToValue animated:NO];
[self setNeedsDisplay];
});
return;
}
dispatch_async(dispatch_get_main_queue(), ^{
//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];
}
#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,49 +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;
@end
@@ -1,506 +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 *progressLayer;
/**The layer that the background shown on.*/
@property (nonatomic, retain) CAShapeLayer *backgroundLayer;
/**The action currently being performed.*/
@property (nonatomic, assign) M13ProgressViewAction currentAction;
@end
@implementation M13ProgressViewSegmentedBar
{
int indeterminateIndex;
NSTimer *indeterminateTimer;
}
#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 = M13ProgressViewSegmentedBarProgressDirectionLeftToRight;
_numberOfSegments = 16;
_segmentSeparation = 10.0;
_cornerRadius = 2.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];
_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
_progressLayer = [CAShapeLayer layer];
_progressLayer.fillColor = self.primaryColor.CGColor;
[self.layer addSublayer:_progressLayer];
//Backround
_backgroundLayer = [CAShapeLayer layer];
_backgroundLayer.fillColor = self.secondaryColor.CGColor;
[self.layer addSublayer:_backgroundLayer];
//Layout
[self layoutSubviews];
}
#pragma mark Appearance
- (void)setPrimaryColor:(UIColor *)primaryColor
{
[super setPrimaryColor:primaryColor];
_progressLayer.fillColor = self.primaryColor.CGColor;
[self setNeedsDisplay];
}
- (void)setSecondaryColor:(UIColor *)secondaryColor
{
[super setSecondaryColor:secondaryColor];
_backgroundLayer.fillColor = self.secondaryColor.CGColor;
[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;
[self setNeedsDisplay];
}
- (void)setSegmentSeparation:(CGFloat)segmentSeparation
{
_segmentSeparation = segmentSeparation;
[self setNeedsDisplay];
}
- (void)setSegmentShape:(M13ProgressViewSegmentedBarSegmentShape)segmentShape
{
_segmentShape = segmentShape;
[self setNeedsDisplay];
}
#pragma mark Actions
- (void)setProgress:(CGFloat)progress animated:(BOOL)animated
{
if (animated == NO) {
if (_displayLink) {
//Kill running animations
[_displayLink removeFromRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
_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 removeFromRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
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_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
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 removeFromRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
self.displayLink = nil;
dispatch_async(dispatch_get_main_queue(), ^{
[super setProgress:_animationToValue animated:NO];
[self setNeedsDisplay];
});
return;
}
dispatch_async(dispatch_get_main_queue(), ^{
//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];
barAnimation.fromValue = (id)_progressLayer.fillColor;
barAnimation.toValue = (id)self.primaryColor.CGColor;
[_progressLayer addAnimation:barAnimation forKey:@"fillColor"];
[CATransaction commit];
} else if (action == M13ProgressViewActionSuccess && _currentAction != M13ProgressViewActionSuccess) {
_currentAction = action;
[self setNeedsDisplay];
[CATransaction begin];
CABasicAnimation *barAnimation = [self barColorAnimation];
barAnimation.fromValue = (id)_progressLayer.fillColor;
barAnimation.toValue = (id)_successColor.CGColor;
[_progressLayer addAnimation:barAnimation forKey:@"fillColor"];
[CATransaction commit];
} else if (action == M13ProgressViewActionFailure && _currentAction != M13ProgressViewActionFailure) {
_currentAction = action;
[self setNeedsDisplay];
[CATransaction begin];
CABasicAnimation *barAnimation = [self barColorAnimation];
barAnimation.fromValue = (id)_progressLayer.fillColor;
barAnimation.toValue = (id)_failureColor.CGColor;
[_progressLayer 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];
_progressLayer.frame = self.bounds;
_backgroundLayer.frame = self.bounds;
}
#pragma mark Drawing
- (NSInteger)numberOfFullSegments
{
return (NSInteger)floorf(self.progress * _numberOfSegments);
}
- (void)drawRect:(CGRect)rect
{
[super drawRect:rect];
if (!self.indeterminate) {
[self drawProgress];
[self drawBackground];
}
}
- (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 = self.bounds.size.height < segmentWidth ? self.bounds.size.height / 2.0 : segmentWidth / 2.0;
}
//Create the path ref that all the paths will be appended
CGMutablePathRef pathRef = CGPathCreateMutable();
//Iterate through all the segments that are full.
for (int i = 0; i < [self numberOfFullSegments]; i++) {
UIBezierPath *path = [UIBezierPath bezierPath];
//Move to top left of rectangle
if (_progressDirection == M13ProgressViewSegmentedBarProgressDirectionLeftToRight) {
if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRectangle || _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), 0, 2 * cornerRadius, 2 * cornerRadius);
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
}
} else if (_progressDirection == M13ProgressViewSegmentedBarProgressDirectionRightToLeft) {
if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRectangle || _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, 0, 2 * cornerRadius, 2 * cornerRadius);
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
}
} else if (_progressDirection == M13ProgressViewSegmentedBarProgressDirectionBottomToTop) {
if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRectangle || _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(0, 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 || _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(0, (i * (segmentWidth + _segmentSeparation)), 2 * cornerRadius, 2 * cornerRadius);
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
}
}
//Add the segment to the path
CGPathAddPath(pathRef, NULL, path.CGPath);
}
//Set the paths to the layer
_progressLayer.path = pathRef;
}
- (void)drawBackground
{
//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 = self.bounds.size.height < segmentWidth ? self.bounds.size.height / 2.0 : segmentWidth / 2.0;
}
//Create the path ref that all the paths will be appended
CGMutablePathRef pathRef = CGPathCreateMutable();
//Iterate through all the segments that are full.
for (int i = 0; i < _numberOfSegments - [self numberOfFullSegments]; i++) {
UIBezierPath *path = [UIBezierPath bezierPath];
//Move to top left of rectangle
if (_progressDirection == M13ProgressViewSegmentedBarProgressDirectionRightToLeft) {
if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRectangle || _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), 0, 2 * cornerRadius, 2 * cornerRadius);
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
}
} else if (_progressDirection == M13ProgressViewSegmentedBarProgressDirectionLeftToRight) {
if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRectangle || _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, 0, 2 * cornerRadius, 2 * cornerRadius);
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
}
} else if (_progressDirection == M13ProgressViewSegmentedBarProgressDirectionTopToBottom) {
if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRectangle || _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(0, self.bounds.size.height - (i * (segmentWidth + _segmentSeparation)) - segmentWidth, 2 * cornerRadius, 2 * cornerRadius);
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
}
} else if (_progressDirection == M13ProgressViewSegmentedBarProgressDirectionBottomToTop) {
if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRectangle || _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(0, (i * (segmentWidth + _segmentSeparation)), 2 * cornerRadius, 2 * cornerRadius);
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
}
}
//Add the segment to the path
CGPathAddPath(pathRef, NULL, path.CGPath);
}
//Set the paths to the layer
_backgroundLayer.path = pathRef;
}
- (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 = self.bounds.size.height < segmentWidth ? self.bounds.size.height / 2.0 : segmentWidth / 2.0;
}
//What index will the segments be colored from.
int numberOfSegmentsToBeColored = _numberOfSegments / 4;
//Create the path ref that all the paths will be appended
CGMutablePathRef progressPathRef = CGPathCreateMutable();
CGMutablePathRef backgroundPathRef = CGPathCreateMutable();
//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 || _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), 0, 2 * cornerRadius, 2 * cornerRadius);
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
}
} else if (_progressDirection == M13ProgressViewSegmentedBarProgressDirectionRightToLeft) {
if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRectangle || _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, 0, 2 * cornerRadius, 2 * cornerRadius);
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
}
} else if (_progressDirection == M13ProgressViewSegmentedBarProgressDirectionBottomToTop) {
if (_segmentShape == M13ProgressViewSegmentedBarSegmentShapeRectangle || _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(0, 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 || _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(0, (i * (segmentWidth + _segmentSeparation)), 2 * cornerRadius, 2 * cornerRadius);
path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
}
}
//Add the segment to the proper path
if (i >= indeterminateIndex && i < indeterminateIndex + numberOfSegmentsToBeColored) {
CGPathAddPath(progressPathRef, NULL, path.CGPath);
} else {
CGPathAddPath(backgroundPathRef, NULL, path.CGPath);
}
}
//Set the paths to the layer
_progressLayer.path = progressPathRef;
_backgroundLayer.path = backgroundPathRef;
//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,591 +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;
}
#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 = 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];
}
- (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 removeFromRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
_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 removeFromRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
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_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
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 removeFromRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
self.displayLink = nil;
dispatch_async(dispatch_get_main_queue(), ^{
[super setProgress:_animationToValue animated:NO];
[self setNeedsDisplay];
});
return;
}
dispatch_async(dispatch_get_main_queue(), ^{
//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];
}
- (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;
}
- (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;
//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,409 +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) CAShapeLayer *stripesLayer;
@end
@implementation M13ProgressViewStripedBar
{
UIColor *_currentColor;
}
#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 setNeedsDisplay];
}
- (void)setBorderWidth:(CGFloat)borderWidth
{
_borderWidth = borderWidth;
[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 removeFromRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
_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 removeFromRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
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_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
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 removeFromRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
self.displayLink = nil;
dispatch_async(dispatch_get_main_queue(), ^{
[super setProgress:_animationToValue animated:NO];
[self setNeedsDisplay];
});
return;
}
dispatch_async(dispatch_get_main_queue(), ^{
//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];
}
#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
-4
View File
@@ -1,4 +0,0 @@
Documentation set was installed to Xcode!
Path: /Users/Brandon/Library/Developer/Shared/Documentation/DocSets/com.BrandonMcQuilkin.M13ProgressSuite.docset
Time: 2014-01-17 16:58:14 +0000
-37
View File
@@ -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>
@@ -1,569 +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&#133;</option>
<option value="overview">Overview</option>
<option value="tasks">Tasks</option>
<option value="instance_methods">Instance Methods</option>
<option value="//api/name/cancelProgress">&nbsp;&nbsp;&nbsp;&nbsp;- cancelProgress</option>
<option value="//api/name/finishProgress">&nbsp;&nbsp;&nbsp;&nbsp;- finishProgress</option>
<option value="//api/name/setIndeterminate:">&nbsp;&nbsp;&nbsp;&nbsp;- setIndeterminate:</option>
<option value="//api/name/setProgress:animated:">&nbsp;&nbsp;&nbsp;&nbsp;- setProgress:animated:</option>
<option value="//api/name/setProgressTitle:">&nbsp;&nbsp;&nbsp;&nbsp;- setProgressTitle:</option>
<option value="//api/name/showProgress">&nbsp;&nbsp;&nbsp;&nbsp;- 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/setIndeterminate:">setIndeterminate:</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/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">&ndash;&nbsp;showProgress</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/setProgress:animated:">&ndash;&nbsp;setProgress:animated:</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/setProgressTitle:">&ndash;&nbsp;setProgressTitle:</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/setIndeterminate:">&ndash;&nbsp;setIndeterminate:</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/finishProgress">&ndash;&nbsp;finishProgress</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/cancelProgress">&ndash;&nbsp;cancelProgress</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/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/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&rsquo;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&rsquo;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/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">&copy; 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-01-17)</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&#133;</option>
<option value="overview">Overview</option>
<option value="tasks">Tasks</option>
<option value="properties">Properties</option>
<option value="//api/name/animationDuration">&nbsp;&nbsp;&nbsp;&nbsp;animationDuration</option>
<option value="//api/name/indeterminate">&nbsp;&nbsp;&nbsp;&nbsp;indeterminate</option>
<option value="//api/name/lines">&nbsp;&nbsp;&nbsp;&nbsp;lines</option>
<option value="//api/name/maskColor">&nbsp;&nbsp;&nbsp;&nbsp;maskColor</option>
<option value="//api/name/maskType">&nbsp;&nbsp;&nbsp;&nbsp;maskType</option>
<option value="//api/name/prefix">&nbsp;&nbsp;&nbsp;&nbsp;prefix</option>
<option value="//api/name/progress">&nbsp;&nbsp;&nbsp;&nbsp;progress</option>
<option value="//api/name/progressType">&nbsp;&nbsp;&nbsp;&nbsp;progressType</option>
<option value="//api/name/showCursor">&nbsp;&nbsp;&nbsp;&nbsp;showCursor</option>
<option value="instance_methods">Instance Methods</option>
<option value="//api/name/addNewLineWithString:">&nbsp;&nbsp;&nbsp;&nbsp;- addNewLineWithString:</option>
<option value="//api/name/clear">&nbsp;&nbsp;&nbsp;&nbsp;- clear</option>
<option value="//api/name/setCurrentLine:">&nbsp;&nbsp;&nbsp;&nbsp;- setCurrentLine:</option>
<option value="//api/name/setProgress:">&nbsp;&nbsp;&nbsp;&nbsp;- 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">&nbsp;&nbsp;progress</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/indeterminate">&nbsp;&nbsp;indeterminate</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/progressType">&nbsp;&nbsp;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">&nbsp;&nbsp;maskType</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/maskColor">&nbsp;&nbsp;maskColor</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/showCursor">&nbsp;&nbsp;showCursor</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/prefix">&nbsp;&nbsp;prefix</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/lines">&nbsp;&nbsp;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">&nbsp;&nbsp;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:">&ndash;&nbsp;setProgress:</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/setCurrentLine:">&ndash;&nbsp;setCurrentLine:</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/addNewLineWithString:">&ndash;&nbsp;addNewLineWithString:</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/clear">&ndash;&nbsp;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">&copy; 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-01-17)</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&#133;</option>
<option value="overview">Overview</option>
<option value="tasks">Tasks</option>
<option value="properties">Properties</option>
<option value="//api/name/animationDuration">&nbsp;&nbsp;&nbsp;&nbsp;animationDuration</option>
<option value="//api/name/indeterminate">&nbsp;&nbsp;&nbsp;&nbsp;indeterminate</option>
<option value="//api/name/primaryColor">&nbsp;&nbsp;&nbsp;&nbsp;primaryColor</option>
<option value="//api/name/progress">&nbsp;&nbsp;&nbsp;&nbsp;progress</option>
<option value="//api/name/secondaryColor">&nbsp;&nbsp;&nbsp;&nbsp;secondaryColor</option>
<option value="instance_methods">Instance Methods</option>
<option value="//api/name/performAction:animated:">&nbsp;&nbsp;&nbsp;&nbsp;- performAction:animated:</option>
<option value="//api/name/setProgress:animated:">&nbsp;&nbsp;&nbsp;&nbsp;- 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">&nbsp;&nbsp;primaryColor</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/secondaryColor">&nbsp;&nbsp;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">&nbsp;&nbsp;indeterminate</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/animationDuration">&nbsp;&nbsp;animationDuration</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/progress">&nbsp;&nbsp;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:">&ndash;&nbsp;setProgress:animated:</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/performAction:animated:">&ndash;&nbsp;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="../Classes/M13ProgressView.html#//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="../Classes/M13ProgressView.html#//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="../Classes/M13ProgressView.html#//api/name/progress">progress</a> to show on the <a href="../Classes/M13ProgressView.html#//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="../Classes/M13ProgressView.html#//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">&copy; 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-01-17)</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,888 +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&#133;</option>
<option value="overview">Overview</option>
<option value="tasks">Tasks</option>
<option value="properties">Properties</option>
<option value="//api/name/animationFromValue">&nbsp;&nbsp;&nbsp;&nbsp;animationFromValue</option>
<option value="//api/name/animationStartTime">&nbsp;&nbsp;&nbsp;&nbsp;animationStartTime</option>
<option value="//api/name/animationToValue">&nbsp;&nbsp;&nbsp;&nbsp;animationToValue</option>
<option value="//api/name/displayLink">&nbsp;&nbsp;&nbsp;&nbsp;displayLink</option>
<option value="//api/name/filterParameters">&nbsp;&nbsp;&nbsp;&nbsp;filterParameters</option>
<option value="//api/name/filters">&nbsp;&nbsp;&nbsp;&nbsp;filters</option>
<option value="//api/name/progress">&nbsp;&nbsp;&nbsp;&nbsp;progress</option>
<option value="//api/name/progressImage">&nbsp;&nbsp;&nbsp;&nbsp;progressImage</option>
<option value="//api/name/progressView">&nbsp;&nbsp;&nbsp;&nbsp;progressView</option>
<option value="instance_methods">Instance Methods</option>
<option value="//api/name/performAction:animated:">&nbsp;&nbsp;&nbsp;&nbsp;- performAction:animated:</option>
<option value="//api/name/setIndeterminate:">&nbsp;&nbsp;&nbsp;&nbsp;- setIndeterminate:</option>
<option value="//api/name/setProgress:animated:">&nbsp;&nbsp;&nbsp;&nbsp;- 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/progress">progress</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 <a href="#//api/name/progress">progress</a> view where <a href="#//api/name/progress">progress</a> is shown by changes in CIFilters.</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">&nbsp;&nbsp;progressImage</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/filters">&nbsp;&nbsp;filters</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/filterParameters">&nbsp;&nbsp;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:">&ndash;&nbsp;setProgress:animated:</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/performAction:animated:">&ndash;&nbsp;performAction:animated:</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/setIndeterminate:">&ndash;&nbsp;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">&nbsp;&nbsp;animationFromValue</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/animationToValue">&nbsp;&nbsp;animationToValue</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/animationStartTime">&nbsp;&nbsp;animationStartTime</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/displayLink">&nbsp;&nbsp;displayLink</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/progress">&nbsp;&nbsp;progress</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/progressView">&nbsp;&nbsp;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">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 <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">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
|&mdash;&mdash; NSDictionary (Index matches the coresponding CIFilter in <a href="#//api/name/filters">filters</a>)
| |&mdash;- &ldquo;Parameter Key&rdquo; -> NSDictionary
| | |&mdash;&mdash; &ldquo;Start Value&rdquo; -> NSNumber
| | |&mdash;&mdash; &ldquo;End Value&rdquo; -> NSNumber
| |&mdash;- &ldquo;Parameter Key&rdquo; -> NSDictionary
| |&mdash;&mdash; &ldquo;Start Value&rdquo; -> NSNumber
| |&mdash;&mdash; &ldquo;End Value&rdquo; -> NSNumber
|&mdash;&mdash; NSDictionary &hellip;</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/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">M13ProgressViewFilteredImage.m</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">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 <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">M13ProgressViewFilteredImage.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="../Classes/M13ProgressView.html#//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="../Classes/M13ProgressView.html#//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="../Classes/M13ProgressView.html#//api/name/progress">progress</a> to show on the <a href="../Classes/M13ProgressView.html#//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="../Classes/M13ProgressView.html#//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">&copy; 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-01-17)</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&#133;</option>
<option value="overview">Overview</option>
<option value="tasks">Tasks</option>
<option value="properties">Properties</option>
<option value="//api/name/animationFromValue">&nbsp;&nbsp;&nbsp;&nbsp;animationFromValue</option>
<option value="//api/name/animationStartTime">&nbsp;&nbsp;&nbsp;&nbsp;animationStartTime</option>
<option value="//api/name/animationToValue">&nbsp;&nbsp;&nbsp;&nbsp;animationToValue</option>
<option value="//api/name/displayLink">&nbsp;&nbsp;&nbsp;&nbsp;displayLink</option>
<option value="//api/name/drawGreyscaleBackground">&nbsp;&nbsp;&nbsp;&nbsp;drawGreyscaleBackground</option>
<option value="//api/name/progress">&nbsp;&nbsp;&nbsp;&nbsp;progress</option>
<option value="//api/name/progressDirection">&nbsp;&nbsp;&nbsp;&nbsp;progressDirection</option>
<option value="//api/name/progressImage">&nbsp;&nbsp;&nbsp;&nbsp;progressImage</option>
<option value="//api/name/progressView">&nbsp;&nbsp;&nbsp;&nbsp;progressView</option>
<option value="instance_methods">Instance Methods</option>
<option value="//api/name/performAction:animated:">&nbsp;&nbsp;&nbsp;&nbsp;- performAction:animated:</option>
<option value="//api/name/setIndeterminate:">&nbsp;&nbsp;&nbsp;&nbsp;- setIndeterminate:</option>
<option value="//api/name/setProgress:animated:">&nbsp;&nbsp;&nbsp;&nbsp;- 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">&nbsp;&nbsp;progressImage</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/progressDirection">&nbsp;&nbsp;progressDirection</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/drawGreyscaleBackground">&nbsp;&nbsp;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:">&ndash;&nbsp;setProgress:animated:</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/performAction:animated:">&ndash;&nbsp;performAction:animated:</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/setIndeterminate:">&ndash;&nbsp;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">&nbsp;&nbsp;animationFromValue</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/animationToValue">&nbsp;&nbsp;animationToValue</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/animationStartTime">&nbsp;&nbsp;animationStartTime</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/displayLink">&nbsp;&nbsp;displayLink</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/progress">&nbsp;&nbsp;progress</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/progressView">&nbsp;&nbsp;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="../Classes/M13ProgressView.html#//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="../Classes/M13ProgressView.html#//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="../Classes/M13ProgressView.html#//api/name/progress">progress</a> to show on the <a href="../Classes/M13ProgressView.html#//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="../Classes/M13ProgressView.html#//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">&copy; 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-01-17)</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,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,115 +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>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/M13ProgressViewPie.html">M13ProgressViewPie</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">&copy; 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-01-17)</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,101 +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/M13ProgressViewPie.html">M13ProgressViewPie</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">&copy; 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-01-17)</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,475 +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"/>
</Subnodes>
</Node>
<Node>
<Name>Categories</Name>
<Path>index.html</Path>
<Subnodes>
<NodeRef refid="13"/>
</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>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="9" 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="10" 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="11" 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="12" 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="13" 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,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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="10"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="11"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</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="12"/>
</Token>
</File>
</Tokens>
@@ -1,107 +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="13"/>
</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="13"/>
</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="13"/>
</Token>
<Token>
<TokenIdentifier>//apple_ref/occ/instm/UINavigationController/setProgressTitle:</TokenIdentifier>
<Abstract type="html">Set the string to replace the UINavigationBar&apos;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&apos;s title while showing progress.</Abstract>
</Parameter>
</Parameters>
<Anchor>//api/name/setProgressTitle:</Anchor>
<NodeRef refid="13"/>
</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="13"/>
</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="13"/>
</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="13"/>
</Token>
</File>
</Tokens>
@@ -1,857 +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/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&apos;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&apos;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&apos;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&apos;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&apos;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&apos;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/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/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,705 +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/setProgress:</TokenIdentifier>
<Abstract type="html">Allow us to write to the progress.</Abstract>
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
<Anchor>//api/name/progress</Anchor>
<NodeRef refid="4"/>
</Token>
<Token>
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBar/progress</TokenIdentifier>
<Abstract type="html">Allow us to write to the progress.</Abstract>
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
<Anchor>//api/name/progress</Anchor>
<NodeRef refid="4"/>
</Token>
<Token>
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBar/progress</TokenIdentifier>
<Abstract type="html">Allow us to write to the progress.</Abstract>
<DeclaredIn>M13ProgressViewBar.m</DeclaredIn>
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
<Anchor>//api/name/progress</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,705 +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/setProgress:</TokenIdentifier>
<Abstract type="html">Allow us to write to the progress.</Abstract>
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
<Anchor>//api/name/progress</Anchor>
<NodeRef refid="5"/>
</Token>
<Token>
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewBorderedBar/progress</TokenIdentifier>
<Abstract type="html">Allow us to write to the progress.</Abstract>
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
<Anchor>//api/name/progress</Anchor>
<NodeRef refid="5"/>
</Token>
<Token>
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewBorderedBar/progress</TokenIdentifier>
<Abstract type="html">Allow us to write to the progress.</Abstract>
<DeclaredIn>M13ProgressViewBorderedBar.m</DeclaredIn>
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
<Anchor>//api/name/progress</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,420 +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/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
| |---- &quot;Parameter Key&quot; -&gt; NSDictionary
| | |------ &quot;Start Value&quot; -&gt; NSNumber
| | |------ &quot;End Value&quot; -&gt; NSNumber
| |---- &quot;Parameter Key&quot; -&gt; NSDictionary
| |------ &quot;Start Value&quot; -&gt; NSNumber
| |------ &quot;End Value&quot; -&gt; 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
| |---- &quot;Parameter Key&quot; -&gt; NSDictionary
| | |------ &quot;Start Value&quot; -&gt; NSNumber
| | |------ &quot;End Value&quot; -&gt; NSNumber
| |---- &quot;Parameter Key&quot; -&gt; NSDictionary
| |------ &quot;Start Value&quot; -&gt; NSNumber
| |------ &quot;End Value&quot; -&gt; 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
| |---- &quot;Parameter Key&quot; -&gt; NSDictionary
| | |------ &quot;Start Value&quot; -&gt; NSNumber
| | |------ &quot;End Value&quot; -&gt; NSNumber
| |---- &quot;Parameter Key&quot; -&gt; NSDictionary
| |------ &quot;Start Value&quot; -&gt; NSNumber
| |------ &quot;End Value&quot; -&gt; 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>
<Token>
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewFilteredImage/setProgress:</TokenIdentifier>
<Abstract type="html">Allow us to write to the progress.</Abstract>
<DeclaredIn>M13ProgressViewFilteredImage.m</DeclaredIn>
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
<Anchor>//api/name/progress</Anchor>
<NodeRef refid="6"/>
</Token>
<Token>
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewFilteredImage/progress</TokenIdentifier>
<Abstract type="html">Allow us to write to the progress.</Abstract>
<DeclaredIn>M13ProgressViewFilteredImage.m</DeclaredIn>
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
<Anchor>//api/name/progress</Anchor>
<NodeRef refid="6"/>
</Token>
<Token>
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewFilteredImage/progress</TokenIdentifier>
<Abstract type="html">Allow us to write to the progress.</Abstract>
<DeclaredIn>M13ProgressViewFilteredImage.m</DeclaredIn>
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
<Anchor>//api/name/progress</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.m</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.m</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.m</DeclaredIn>
<Declaration>@property (nonatomic, retain) UIImageView *progressView</Declaration>
<Anchor>//api/name/progressView</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,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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</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="8"/>
</Token>
</File>
</Tokens>
@@ -1,597 +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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</Token>
<Token>
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/setProgress:</TokenIdentifier>
<Abstract type="html">Allow us to write to the progress.</Abstract>
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
<Anchor>//api/name/progress</Anchor>
<NodeRef refid="9"/>
</Token>
<Token>
<TokenIdentifier>//apple_ref/occ/instm/M13ProgressViewRing/progress</TokenIdentifier>
<Abstract type="html">Allow us to write to the progress.</Abstract>
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
<Anchor>//api/name/progress</Anchor>
<NodeRef refid="9"/>
</Token>
<Token>
<TokenIdentifier>//apple_ref/occ/instp/M13ProgressViewRing/progress</TokenIdentifier>
<Abstract type="html">Allow us to write to the progress.</Abstract>
<DeclaredIn>M13ProgressViewRing.m</DeclaredIn>
<Declaration>@property (nonatomic, readwrite) CGFloat progress</Declaration>
<Anchor>//api/name/progress</Anchor>
<NodeRef refid="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</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="9"/>
</Token>
</File>
</Tokens>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,569 +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&#133;</option>
<option value="overview">Overview</option>
<option value="tasks">Tasks</option>
<option value="instance_methods">Instance Methods</option>
<option value="//api/name/cancelProgress">&nbsp;&nbsp;&nbsp;&nbsp;- cancelProgress</option>
<option value="//api/name/finishProgress">&nbsp;&nbsp;&nbsp;&nbsp;- finishProgress</option>
<option value="//api/name/setIndeterminate:">&nbsp;&nbsp;&nbsp;&nbsp;- setIndeterminate:</option>
<option value="//api/name/setProgress:animated:">&nbsp;&nbsp;&nbsp;&nbsp;- setProgress:animated:</option>
<option value="//api/name/setProgressTitle:">&nbsp;&nbsp;&nbsp;&nbsp;- setProgressTitle:</option>
<option value="//api/name/showProgress">&nbsp;&nbsp;&nbsp;&nbsp;- 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/setIndeterminate:">setIndeterminate:</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/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">&ndash;&nbsp;showProgress</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/setProgress:animated:">&ndash;&nbsp;setProgress:animated:</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/setProgressTitle:">&ndash;&nbsp;setProgressTitle:</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/setIndeterminate:">&ndash;&nbsp;setIndeterminate:</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/finishProgress">&ndash;&nbsp;finishProgress</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/cancelProgress">&ndash;&nbsp;cancelProgress</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/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/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&rsquo;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&rsquo;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/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">&copy; 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-01-17)</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&#133;</option>
<option value="overview">Overview</option>
<option value="tasks">Tasks</option>
<option value="properties">Properties</option>
<option value="//api/name/animationDuration">&nbsp;&nbsp;&nbsp;&nbsp;animationDuration</option>
<option value="//api/name/indeterminate">&nbsp;&nbsp;&nbsp;&nbsp;indeterminate</option>
<option value="//api/name/lines">&nbsp;&nbsp;&nbsp;&nbsp;lines</option>
<option value="//api/name/maskColor">&nbsp;&nbsp;&nbsp;&nbsp;maskColor</option>
<option value="//api/name/maskType">&nbsp;&nbsp;&nbsp;&nbsp;maskType</option>
<option value="//api/name/prefix">&nbsp;&nbsp;&nbsp;&nbsp;prefix</option>
<option value="//api/name/progress">&nbsp;&nbsp;&nbsp;&nbsp;progress</option>
<option value="//api/name/progressType">&nbsp;&nbsp;&nbsp;&nbsp;progressType</option>
<option value="//api/name/showCursor">&nbsp;&nbsp;&nbsp;&nbsp;showCursor</option>
<option value="instance_methods">Instance Methods</option>
<option value="//api/name/addNewLineWithString:">&nbsp;&nbsp;&nbsp;&nbsp;- addNewLineWithString:</option>
<option value="//api/name/clear">&nbsp;&nbsp;&nbsp;&nbsp;- clear</option>
<option value="//api/name/setCurrentLine:">&nbsp;&nbsp;&nbsp;&nbsp;- setCurrentLine:</option>
<option value="//api/name/setProgress:">&nbsp;&nbsp;&nbsp;&nbsp;- 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">&nbsp;&nbsp;progress</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/indeterminate">&nbsp;&nbsp;indeterminate</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/progressType">&nbsp;&nbsp;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">&nbsp;&nbsp;maskType</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/maskColor">&nbsp;&nbsp;maskColor</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/showCursor">&nbsp;&nbsp;showCursor</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/prefix">&nbsp;&nbsp;prefix</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/lines">&nbsp;&nbsp;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">&nbsp;&nbsp;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:">&ndash;&nbsp;setProgress:</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/setCurrentLine:">&ndash;&nbsp;setCurrentLine:</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/addNewLineWithString:">&ndash;&nbsp;addNewLineWithString:</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/clear">&ndash;&nbsp;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">&copy; 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-01-17)</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&#133;</option>
<option value="overview">Overview</option>
<option value="tasks">Tasks</option>
<option value="properties">Properties</option>
<option value="//api/name/animationDuration">&nbsp;&nbsp;&nbsp;&nbsp;animationDuration</option>
<option value="//api/name/indeterminate">&nbsp;&nbsp;&nbsp;&nbsp;indeterminate</option>
<option value="//api/name/primaryColor">&nbsp;&nbsp;&nbsp;&nbsp;primaryColor</option>
<option value="//api/name/progress">&nbsp;&nbsp;&nbsp;&nbsp;progress</option>
<option value="//api/name/secondaryColor">&nbsp;&nbsp;&nbsp;&nbsp;secondaryColor</option>
<option value="instance_methods">Instance Methods</option>
<option value="//api/name/performAction:animated:">&nbsp;&nbsp;&nbsp;&nbsp;- performAction:animated:</option>
<option value="//api/name/setProgress:animated:">&nbsp;&nbsp;&nbsp;&nbsp;- 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">&nbsp;&nbsp;primaryColor</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/secondaryColor">&nbsp;&nbsp;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">&nbsp;&nbsp;indeterminate</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/animationDuration">&nbsp;&nbsp;animationDuration</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/progress">&nbsp;&nbsp;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:">&ndash;&nbsp;setProgress:animated:</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/performAction:animated:">&ndash;&nbsp;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="../Classes/M13ProgressView.html#//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="../Classes/M13ProgressView.html#//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="../Classes/M13ProgressView.html#//api/name/progress">progress</a> to show on the <a href="../Classes/M13ProgressView.html#//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="../Classes/M13ProgressView.html#//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">&copy; 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-01-17)</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
File diff suppressed because it is too large Load Diff
@@ -1,888 +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&#133;</option>
<option value="overview">Overview</option>
<option value="tasks">Tasks</option>
<option value="properties">Properties</option>
<option value="//api/name/animationFromValue">&nbsp;&nbsp;&nbsp;&nbsp;animationFromValue</option>
<option value="//api/name/animationStartTime">&nbsp;&nbsp;&nbsp;&nbsp;animationStartTime</option>
<option value="//api/name/animationToValue">&nbsp;&nbsp;&nbsp;&nbsp;animationToValue</option>
<option value="//api/name/displayLink">&nbsp;&nbsp;&nbsp;&nbsp;displayLink</option>
<option value="//api/name/filterParameters">&nbsp;&nbsp;&nbsp;&nbsp;filterParameters</option>
<option value="//api/name/filters">&nbsp;&nbsp;&nbsp;&nbsp;filters</option>
<option value="//api/name/progress">&nbsp;&nbsp;&nbsp;&nbsp;progress</option>
<option value="//api/name/progressImage">&nbsp;&nbsp;&nbsp;&nbsp;progressImage</option>
<option value="//api/name/progressView">&nbsp;&nbsp;&nbsp;&nbsp;progressView</option>
<option value="instance_methods">Instance Methods</option>
<option value="//api/name/performAction:animated:">&nbsp;&nbsp;&nbsp;&nbsp;- performAction:animated:</option>
<option value="//api/name/setIndeterminate:">&nbsp;&nbsp;&nbsp;&nbsp;- setIndeterminate:</option>
<option value="//api/name/setProgress:animated:">&nbsp;&nbsp;&nbsp;&nbsp;- 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/progress">progress</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 <a href="#//api/name/progress">progress</a> view where <a href="#//api/name/progress">progress</a> is shown by changes in CIFilters.</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">&nbsp;&nbsp;progressImage</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/filters">&nbsp;&nbsp;filters</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/filterParameters">&nbsp;&nbsp;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:">&ndash;&nbsp;setProgress:animated:</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/performAction:animated:">&ndash;&nbsp;performAction:animated:</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/setIndeterminate:">&ndash;&nbsp;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">&nbsp;&nbsp;animationFromValue</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/animationToValue">&nbsp;&nbsp;animationToValue</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/animationStartTime">&nbsp;&nbsp;animationStartTime</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/displayLink">&nbsp;&nbsp;displayLink</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/progress">&nbsp;&nbsp;progress</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/progressView">&nbsp;&nbsp;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">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 <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">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
|&mdash;&mdash; NSDictionary (Index matches the coresponding CIFilter in <a href="#//api/name/filters">filters</a>)
| |&mdash;- &ldquo;Parameter Key&rdquo; -> NSDictionary
| | |&mdash;&mdash; &ldquo;Start Value&rdquo; -> NSNumber
| | |&mdash;&mdash; &ldquo;End Value&rdquo; -> NSNumber
| |&mdash;- &ldquo;Parameter Key&rdquo; -> NSDictionary
| |&mdash;&mdash; &ldquo;Start Value&rdquo; -> NSNumber
| |&mdash;&mdash; &ldquo;End Value&rdquo; -> NSNumber
|&mdash;&mdash; NSDictionary &hellip;</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/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">M13ProgressViewFilteredImage.m</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">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 <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">M13ProgressViewFilteredImage.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="../Classes/M13ProgressView.html#//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="../Classes/M13ProgressView.html#//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="../Classes/M13ProgressView.html#//api/name/progress">progress</a> to show on the <a href="../Classes/M13ProgressView.html#//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="../Classes/M13ProgressView.html#//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">&copy; 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-01-17)</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&#133;</option>
<option value="overview">Overview</option>
<option value="tasks">Tasks</option>
<option value="properties">Properties</option>
<option value="//api/name/animationFromValue">&nbsp;&nbsp;&nbsp;&nbsp;animationFromValue</option>
<option value="//api/name/animationStartTime">&nbsp;&nbsp;&nbsp;&nbsp;animationStartTime</option>
<option value="//api/name/animationToValue">&nbsp;&nbsp;&nbsp;&nbsp;animationToValue</option>
<option value="//api/name/displayLink">&nbsp;&nbsp;&nbsp;&nbsp;displayLink</option>
<option value="//api/name/drawGreyscaleBackground">&nbsp;&nbsp;&nbsp;&nbsp;drawGreyscaleBackground</option>
<option value="//api/name/progress">&nbsp;&nbsp;&nbsp;&nbsp;progress</option>
<option value="//api/name/progressDirection">&nbsp;&nbsp;&nbsp;&nbsp;progressDirection</option>
<option value="//api/name/progressImage">&nbsp;&nbsp;&nbsp;&nbsp;progressImage</option>
<option value="//api/name/progressView">&nbsp;&nbsp;&nbsp;&nbsp;progressView</option>
<option value="instance_methods">Instance Methods</option>
<option value="//api/name/performAction:animated:">&nbsp;&nbsp;&nbsp;&nbsp;- performAction:animated:</option>
<option value="//api/name/setIndeterminate:">&nbsp;&nbsp;&nbsp;&nbsp;- setIndeterminate:</option>
<option value="//api/name/setProgress:animated:">&nbsp;&nbsp;&nbsp;&nbsp;- 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">&nbsp;&nbsp;progressImage</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/progressDirection">&nbsp;&nbsp;progressDirection</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/drawGreyscaleBackground">&nbsp;&nbsp;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:">&ndash;&nbsp;setProgress:animated:</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/performAction:animated:">&ndash;&nbsp;performAction:animated:</a></code>
</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/setIndeterminate:">&ndash;&nbsp;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">&nbsp;&nbsp;animationFromValue</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/animationToValue">&nbsp;&nbsp;animationToValue</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/animationStartTime">&nbsp;&nbsp;animationStartTime</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/displayLink">&nbsp;&nbsp;displayLink</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/progress">&nbsp;&nbsp;progress</a></code>
</span>
<span class="task-item-suffix">property</span>
</li><li>
<span class="tooltip">
<code><a href="#//api/name/progressView">&nbsp;&nbsp;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="../Classes/M13ProgressView.html#//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="../Classes/M13ProgressView.html#//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="../Classes/M13ProgressView.html#//api/name/progress">progress</a> to show on the <a href="../Classes/M13ProgressView.html#//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="../Classes/M13ProgressView.html#//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">&copy; 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-01-17)</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
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-615
View File
@@ -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 */
-22
View File
@@ -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;
}
-115
View File
@@ -1,115 +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>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/M13ProgressViewPie.html">M13ProgressViewPie</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">&copy; 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-01-17)</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

-101
View File
@@ -1,101 +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/M13ProgressViewPie.html">M13ProgressViewPie</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">&copy; 2014 Marxon13 Productions (Brandon McQuilkin). All rights reserved. (Last updated: 2014-01-17)</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>
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Some files were not shown because too many files have changed in this diff Show More