67 Commits

Author SHA1 Message Date
Matej Bukovinski d9886df3ad Version bump. 2014-08-12 10:30:12 +02:00
Matej Bukovinski 7e0bda2f85 Merge branch 'runeb-master' 2014-08-12 10:27:22 +02:00
Matej Bukovinski b8ef4c4e58 Cleaned up activityIndicatorColor support. 2014-08-12 10:27:02 +02:00
Matej Bukovinski 2716a01b99 Merge branch 'master' of https://github.com/runeb/MBProgressHUD into runeb-master 2014-08-12 10:11:23 +02:00
Matej Bukovinski e368a8c243 Merge branch 'master' of github.com:jdg/MBProgressHUD
Conflicts:
	MBProgressHUD.m
2014-08-12 10:08:20 +02:00
Matej Bukovinski 59682eb65e Removed unnecessary method declarations. 2014-08-12 10:04:19 +02:00
Matej Bukovinski 7ed09decad Improved window rotation animation. 2014-08-12 10:04:19 +02:00
Matej Bukovinski 4b403a7d2a Cleaned up notification handling. 2014-08-12 10:04:19 +02:00
Paul Bramsen 0a15804a71 Use the proper notification for status bar did change 2014-08-12 10:04:19 +02:00
Matej Bukovinski 8eb3e881b9 Merge pull request #200 from gmirabito/master
Expose HUD bezel size as read only public property
2014-08-12 10:04:10 +02:00
Matej Bukovinski 4ad3584fee Merge pull request #211 from paulbramsen/master
Use the proper notification for status bar orientation change
2014-08-12 09:17:47 +02:00
Matej Bukovinski 4f8b21759a Freshened up the checkmark example. 2014-08-12 08:37:26 +02:00
Matej Bukovinski 83630b6198 Updated annular mode for iOS 7+. 2014-08-12 07:56:36 +02:00
Matej Bukovinski bd24a291d1 Removing broken yOffset. 2014-08-12 07:36:47 +02:00
Matej Bukovinski 8e56d3e347 Fixed rotation animation on iOS 8. 2014-08-12 07:28:22 +02:00
Matej Bukovinski 5fb0921dab Updated demo appearance. 2014-08-12 07:19:56 +02:00
Matej Bukovinski f0601bd900 Migrated to kCFCoreFoundationVersionNumber_iOS_8_0. 2014-08-12 06:57:03 +02:00
Matej Bukovinski 194c82c86b Clean up code style. 2014-08-12 06:51:46 +02:00
Matej Bukovinski 516554f1f9 Merge pull request #222 from bsuvorov/master
iOS8:  UIWindow rotation transformation is no longer required.
2014-08-12 06:48:23 +02:00
Boris Suvorov 06fdc08431 Because iOS8 window now rotates its subviews, we need
to skip rotation of the HUD when it is being added to the window.
Learn more here: https://devforums.apple.com/message/981103#981103
2014-08-11 18:08:53 -07:00
Matej Bukovinski 9cfed6bc39 Bumped the deployment target for Xcode 6 compatibility. 2014-07-24 09:28:16 +02:00
Paul Bramsen 4194dcf10a Use the proper notification for status bar did change 2014-06-26 16:53:08 -07:00
Matej Bukovinski 2d3561081b Added missing release calls in non-arc mode. Fixes #206 2014-05-28 10:27:15 +02:00
Matej Bukovinski 8800353105 Fixed spacing. 2014-05-28 10:25:04 +02:00
Matej Bukovinski 5918829642 Comment cleanup / fix. #201 2014-05-16 10:59:21 +02:00
Greg Mirabito 69b4f27895 Expose HUD bezel size as read only public property
We have a situation where we want to add a tap gesture recognizer to
the HUD for “tap to cancel” behavior. We want to ignore the tap gesture
if the tap did not occur within the bezel region of the HUD. By
exposing the ‘size’ property, we can determine if the tap location is
within the rectangle of the bezel.

Here is an example of code that processes a tap event that was added to
the HUD

-(void)tapReceived:(UITapGestureRecognizer *)recognizer{
    CGPoint loc = [recognizer locationInView:progress];

    CGFloat w = progress.size.width;
    CGFloat h = progress.size.height;
    CGFloat x = progress.center.x - w/2;
    CGFloat y = progress.center.y - h/2;
    CGRect progressRect = CGRectMake(x, y, w, h);

    //if the tap was within the HUD bezel, then react to it, ignore it
otherwise
    if(CGRectContainsPoint(progressRect, loc)){
        //do any actions here (cancel operation for example)
        [progress hide:YES];
    }else{
        //the tap location was not in the bezel region of the HUD so
igore it.
        return;
    }

}
2014-05-15 16:16:30 -04:00
Matej Bukovinski c13d794975 Merge pull request #199 from rivera-ernesto/add_suggested_warning_check
Add Xcode suggested GCC_WARN_64_TO_32_BIT_CONVERSION warning to Demo project
2014-05-13 08:36:57 +02:00
利辺羅エルネスト 913d8f37e5 Add Xcode suggested GCC_WARN_64_TO_32_BIT_CONVERSION warning to Demo project 2014-05-13 14:55:54 +09:00
Matej Bukovinski 130d31288e Merge pull request #192 from liuyaodong/patch-1
Canceling scheduled method calls inside `done`.
2014-02-25 15:14:20 +01:00
Liu Yaodong 307ca57a4c Update MBProgressHUD.m
Cancel scheduled task when -done called to fix memory issues.
2014-02-25 15:20:34 +08:00
Matej Bukovinski d775e8d985 Merge pull request #186 from holyman2k/master
fix arm 64 compiling error
2014-01-22 04:45:30 -08:00
Charlie Wu 7ffa6696c9 fix arm 64 compiling error 2014-01-20 09:53:02 +11:00
Matej Bukovinski 0fffff8031 Replacing roundf() with round() from thmath.h.
Improves 64 bit compatibility. See http://stackoverflow.com/questions/7694948/cgfloat-round-floor-abs-and-32-64-bit-precision
2013-11-14 12:29:11 +01:00
Matej Bukovinski 322af011f6 Removing the workspace .xccheckout file.
This file does not make much sense for this project see http://stackoverflow.com/questions/18340453/should-xccheckout-files-in-xcode5-be-ignored-under-vcs
2013-11-14 12:25:22 +01:00
Matej Bukovinski e879be1d22 Merge pull request #169 from nanoant/patch/fix-xcode5-warnings
Patch/fix xcode5 warnings
2013-10-30 03:14:17 -07:00
Adam Strzelecki 65ecd91445 Remove executable flags from source files 2013-10-16 17:03:28 +02:00
Adam Strzelecki da3d84ea0c Fix: Xcode 5 recommended settings
* Select architectures based on deployment target
* Use current architecture for Debug build
* Enable recommended warnings
2013-10-16 16:59:22 +02:00
Rune Botten 1f1aa50bb4 Conditionally declare the property depending on iOS target version 2013-10-04 14:45:12 +02:00
Rune Botten 7c90731626 Add dynamic property for the color of the UIActivityIndicatorView on iOS >= 5 2013-10-04 14:13:53 +02:00
Matej Bukovinski bb4a35b008 Merge pull request #167 from Club15CC/15cc-additions
Adds roundedCorner property
2013-10-02 06:33:14 -07:00
Hari Karam Singh c56e789aec Adds roundedCorner property 2013-10-01 13:14:52 +01:00
Matej Bukovinski c8e51ec1ef Added xccheckout to gitignore. 2013-10-01 10:47:15 +02:00
Matej Bukovinski a5d34f1aac Merge pull request #50 from percysnoodle/label_colors
Add labelColor and detailLabelColor to control label colours
2013-10-01 01:33:26 -07:00
Matej Bukovinski 8e0aed0409 Match the hud frame (not bounds) to the superview bounds. 2013-09-29 21:14:36 +02:00
Matej Bukovinski 7c8ef3d5f1 Version bump to 0.8. 2013-09-19 10:43:42 +02:00
Matej Bukovinski b157ecb0ac Fixed threading bug in the myMixedTask demo. 2013-09-19 10:41:25 +02:00
Matej Bukovinski fdd147f3c2 Calling hudWasHidden: at the end of the done method. 2013-09-19 10:19:23 +02:00
Matej Bukovinski fa5cc8e4ec Changed the URL sample file and improved expectedLength handling. 2013-09-19 10:09:39 +02:00
Matej Bukovinski 2894a431bd Merge branch 'master' of github.com:jdg/MBProgressHUD 2013-09-19 09:43:19 +02:00
Matej Bukovinski 61e8f0ad13 Merge pull request #158 from lono175/master
Fix for a possible memory leak.
2013-09-19 00:42:59 -07:00
Matej Bukovinski ed4f0d0ec1 Merge branch 'master' of github.com:jdg/MBProgressHUD 2013-09-19 09:31:40 +02:00
Matej Bukovinski 5c879487e2 Merge pull request #163 from jdg/iOS7
I os7 fixes
2013-09-19 00:30:47 -07:00
Lono d4581b29f3 - fix a possible memory leak 2013-08-22 22:53:31 +08:00
Simon Booth 90c1ffc412 Add labelColor and detailLabelColor to control label colours 2013-07-19 08:07:46 +01:00
Matej Bukovinski fc51985417 Bumped cocoapods instructions to version to 0.7. 2013-07-02 11:35:36 +02:00
Matej Bukovinski e7b749355c Forcing zero label height when text is set to @“”. 2013-07-01 19:35:35 +02:00
Matej Bukovinski fd37963b08 Removed .gitattributes. 2013-06-30 23:11:23 +02:00
Matej Bukovinski c7b897895d Removed .gitattributes. 2013-06-30 23:10:18 +02:00
Matej Bukovinski a50f7a36a4 Using iOS 7 text size methods, when deploying to iOS 7+.
- circumvents deprication warnings
2013-06-30 21:03:31 +02:00
Matej Bukovinski 355651dd21 Added new Xcode shareddata. 2013-06-30 20:24:59 +02:00
Matej Bukovinski 6beae8260e Added iOS 7 resources to the demo project.
- new icon size (+ missing existing icon sizes)
- new launch images (+ updated iOS 6 images)
- a convenient screenshot mode setting
2013-06-30 20:24:35 +02:00
Matej Bukovinski b68750e3a0 Performed suggest Xcode project modernization. 2013-06-30 19:42:05 +02:00
Andrew Vyazovoy febda3cb4b Little typo fix. 2013-06-30 14:13:51 +02:00
Andrew Vyazovoy 21020cdc4e Applied this recommendations: https://developer.apple.com/library/ios/#technotes/iOSStaticLibraries/Introduction.html
Added .pch file speed up compilation time.
2013-06-30 14:13:51 +02:00
Matej Bukovinski 5565c64f89 Merge pull request #146 from Vyazovoy/feature/fix_header_place
Modern static library configuration rules
2013-06-30 05:01:18 -07:00
Andrew Vyazovoy 3e095ae0b9 Little typo fix. 2013-06-30 15:42:32 +04:00
Andrew Vyazovoy b0f1f66148 Applied this recommendations: https://developer.apple.com/library/ios/#technotes/iOSStaticLibraries/Introduction.html
Added .pch file speed up compilation time.
2013-06-30 15:41:47 +04:00
26 changed files with 705 additions and 1500 deletions
-1
View File
@@ -1 +0,0 @@
*.pbxproj -crlf -diff -merge
+1
View File
@@ -5,6 +5,7 @@ build/
*.mode2v3
*.perspectivev3
xcuserdata/
*.xccheckout
# old skool
.svn
+1 -23
View File
@@ -7,30 +7,8 @@
//
#import <UIKit/UIKit.h>
#import "MBProgressHUD.h"
@interface HudDemoViewController : UIViewController <MBProgressHUDDelegate> {
MBProgressHUD *HUD;
long long expectedLength;
long long currentLength;
}
- (IBAction)showSimple:(id)sender;
- (IBAction)showWithLabel:(id)sender;
- (IBAction)showWithDetailsLabel:(id)sender;
- (IBAction)showWithLabelDeterminate:(id)sender;
- (IBAction)showWIthLabelAnnularDeterminate:(id)sender;
- (IBAction)showWithLabelDeterminateHorizontalBar:(id)sender;
- (IBAction)showWithCustomView:(id)sender;
- (IBAction)showWithLabelMixed:(id)sender;
- (IBAction)showUsingBlocks:(id)sender;
- (IBAction)showOnWindow:(id)sender;
- (IBAction)showURL:(id)sender;
- (void)myTask;
- (void)myProgressTask;
- (void)myMixedTask;
@interface HudDemoViewController : UIViewController
@end
+47 -19
View File
@@ -7,18 +7,42 @@
//
#import "HudDemoViewController.h"
#import "MBProgressHUD.h"
#import <unistd.h>
#define SCREENSHOT_MODE 0
#ifndef kCFCoreFoundationVersionNumber_iOS_8_0
#define kCFCoreFoundationVersionNumber_iOS_7_0 847.20
#endif
@interface HudDemoViewController () <MBProgressHUDDelegate> {
MBProgressHUD *HUD;
long long expectedLength;
long long currentLength;
}
@property (retain, nonatomic) IBOutletCollection(UIButton) NSArray *buttons;
@end
@implementation HudDemoViewController
#pragma mark -
#pragma mark Constants
#pragma mark -
#pragma mark Lifecycle methods
#pragma mark - Lifecycle methods
- (void)viewDidLoad {
UIView *content = [[self.view subviews] objectAtIndex:0];
#if SCREENSHOT_MODE
[content.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
#endif
if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber_iOS_7_0) {
[self.buttons setValue:@5.f forKeyPath:@"layer.cornerRadius"];
} else {
[self.buttons setValue:nil forKey:@"backgroundColor"];
}
((UIScrollView *)self.view).contentSize = content.bounds.size;
}
@@ -32,11 +56,11 @@
}
- (void)dealloc {
[_buttons release];
[super dealloc];
}
#pragma mark -
#pragma mark IBActions
#pragma mark - Actions
- (IBAction)showSimple:(id)sender {
// The hud will dispable all input on the view (use the higest view possible in the view hierarchy)
@@ -175,7 +199,7 @@
}
- (IBAction)showURL:(id)sender {
NSURL *URL = [NSURL URLWithString:@"https://github.com/matej/MBProgressHUD/zipball/master"];
NSURL *URL = [NSURL URLWithString:@"http://a1408.g.akamai.net/5/1408/1388/2005110403/1a1a1ad948be278cff2d96046ad90768d848b41947aa1986/sample_iPod.m4v.zip"];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
@@ -209,7 +233,6 @@
hud.mode = MBProgressHUDModeText;
hud.labelText = @"Some message...";
hud.margin = 10.f;
hud.yOffset = 150.f;
hud.removeFromSuperViewOnHide = YES;
[hud hide:YES afterDelay:3];
@@ -226,8 +249,7 @@
[HUD showWhileExecuting:@selector(myTask) onTarget:self withObject:nil animated:YES];
}
#pragma mark -
#pragma mark Execution code
#pragma mark - Execution code
- (void)myTask {
// Do something usefull in here instead of sleeping ...
@@ -261,19 +283,22 @@
HUD.mode = MBProgressHUDModeIndeterminate;
HUD.labelText = @"Cleaning up";
sleep(2);
// The sample image is based on the work by www.pixelpressicons.com, http://creativecommons.org/licenses/by/2.5/ca/
// Make the customViews 37 by 37 pixels for best results (those are the bounds of the build-in progress indicators)
HUD.customView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"37x-Checkmark.png"]] autorelease];
// UIImageView is a UIKit class, we have to initialize it on the main thread
__block UIImageView *imageView;
dispatch_sync(dispatch_get_main_queue(), ^{
UIImage *image = [UIImage imageNamed:@"37x-Checkmark.png"];
imageView = [[UIImageView alloc] initWithImage:image];
});
HUD.customView = [imageView autorelease];
HUD.mode = MBProgressHUDModeCustomView;
HUD.labelText = @"Completed";
sleep(2);
}
#pragma mark -
#pragma mark NSURLConnectionDelegete
#pragma mark - NSURLConnectionDelegete
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
expectedLength = [response expectedContentLength];
expectedLength = MAX([response expectedContentLength], 1);
currentLength = 0;
HUD.mode = MBProgressHUDModeDeterminate;
}
@@ -293,8 +318,7 @@
[HUD hide:YES];
}
#pragma mark -
#pragma mark MBProgressHUDDelegate methods
#pragma mark - MBProgressHUDDelegate
- (void)hudWasHidden:(MBProgressHUD *)hud {
// Remove HUD from screen when the HUD was hidded
@@ -303,4 +327,8 @@
HUD = nil;
}
- (void)viewDidUnload {
[self setButtons:nil];
[super viewDidUnload];
}
@end
+37 -4
View File
@@ -14,6 +14,11 @@
28D7ACF80DDB3853001CB0EB /* HudDemoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28D7ACF70DDB3853001CB0EB /* HudDemoViewController.m */; };
D21D40801611CF6C005FCE55 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D21D407F1611CF6C005FCE55 /* Default-568h@2x.png */; };
D22F7D810F85241C00550BB3 /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = D22F7D800F85241C00550BB3 /* MBProgressHUD.m */; };
D24A23051780ADCD0020310A /* Icon-Small.png in Resources */ = {isa = PBXBuildFile; fileRef = D22568E61780AA77008D5939 /* Icon-Small.png */; };
D24A23061780ADD10020310A /* Icon-Small@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D22568E71780AA77008D5939 /* Icon-Small@2x.png */; };
D24A23071780ADDA0020310A /* Icon-iOS7@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D22568E51780A9C6008D5939 /* Icon-iOS7@2x.png */; };
D24A23081780ADE60020310A /* Default-iOS7-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D22568E31780A913008D5939 /* Default-iOS7-568h@2x.png */; };
D24A23091780ADE90020310A /* Default-iOS7@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D22568E41780A913008D5939 /* Default-iOS7@2x.png */; };
D277FDB311FC834200304321 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = D277FDB211FC834200304321 /* Default.png */; };
D277FDB911FC877E00304321 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = D277FDB711FC877E00304321 /* Icon.png */; };
D277FDBA11FC877E00304321 /* Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D277FDB811FC877E00304321 /* Icon@2x.png */; };
@@ -37,6 +42,11 @@
32CA4F630368D1EE00C91783 /* HudDemo_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HudDemo_Prefix.pch; sourceTree = "<group>"; };
8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
D21D407F1611CF6C005FCE55 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-568h@2x.png"; path = "Images/Default-568h@2x.png"; sourceTree = "<group>"; };
D22568E31780A913008D5939 /* Default-iOS7-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-iOS7-568h@2x.png"; path = "Images/Default-iOS7-568h@2x.png"; sourceTree = "<group>"; };
D22568E41780A913008D5939 /* Default-iOS7@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-iOS7@2x.png"; path = "Images/Default-iOS7@2x.png"; sourceTree = "<group>"; };
D22568E51780A9C6008D5939 /* Icon-iOS7@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-iOS7@2x.png"; path = "Images/Icon-iOS7@2x.png"; sourceTree = "<group>"; };
D22568E61780AA77008D5939 /* Icon-Small.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-Small.png"; path = "Images/Icon-Small.png"; sourceTree = "<group>"; };
D22568E71780AA77008D5939 /* Icon-Small@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-Small@2x.png"; path = "Images/Icon-Small@2x.png"; sourceTree = "<group>"; };
D22F7D7F0F85241C00550BB3 /* MBProgressHUD.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MBProgressHUD.h; path = ../MBProgressHUD.h; sourceTree = SOURCE_ROOT; };
D22F7D800F85241C00550BB3 /* MBProgressHUD.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MBProgressHUD.m; path = ../../MBProgressHUD.m; sourceTree = "<group>"; };
D277FDB211FC834200304321 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Default.png; path = Images/Default.png; sourceTree = "<group>"; };
@@ -131,9 +141,14 @@
children = (
D277FDB711FC877E00304321 /* Icon.png */,
D277FDB811FC877E00304321 /* Icon@2x.png */,
D22568E61780AA77008D5939 /* Icon-Small.png */,
D22568E71780AA77008D5939 /* Icon-Small@2x.png */,
D22568E51780A9C6008D5939 /* Icon-iOS7@2x.png */,
D277FDB211FC834200304321 /* Default.png */,
D2A6FD1C13ABC5A200BFE4C9 /* Default@2x.png */,
D21D407F1611CF6C005FCE55 /* Default-568h@2x.png */,
D22568E31780A913008D5939 /* Default-iOS7-568h@2x.png */,
D22568E41780A913008D5939 /* Default-iOS7@2x.png */,
D2F88CD5115E9F7F00E6DB82 /* 37x-Checkmark.png */,
D286A67F1518736B00E13FB8 /* 37x-Checkmark@2x.png */,
);
@@ -176,7 +191,7 @@
isa = PBXProject;
attributes = {
CLASSPREFIX = MB;
LastUpgradeCheck = 0460;
LastUpgradeCheck = 0600;
ORGANIZATIONNAME = "Matej Bukovinski";
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "HudDemo" */;
@@ -211,7 +226,12 @@
D277FDBA11FC877E00304321 /* Icon@2x.png in Resources */,
D2A6FD1D13ABC5A200BFE4C9 /* Default@2x.png in Resources */,
D286A6801518736B00E13FB8 /* 37x-Checkmark@2x.png in Resources */,
D24A23081780ADE60020310A /* Default-iOS7-568h@2x.png in Resources */,
D24A23051780ADCD0020310A /* Icon-Small.png in Resources */,
D24A23071780ADDA0020310A /* Icon-iOS7@2x.png in Resources */,
D21D40801611CF6C005FCE55 /* Default-568h@2x.png in Resources */,
D24A23061780ADD10020310A /* Icon-Small@2x.png in Resources */,
D24A23091780ADE90020310A /* Default-iOS7@2x.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -281,18 +301,24 @@
C01FCF4F08A954540054247B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 4.0;
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
};
@@ -301,17 +327,24 @@
C01FCF5008A954540054247B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
SDKROOT = iphoneos;
};
name = Release;
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0460"
LastUpgradeVersion = "0600"
version = "1.8">
<BuildAction
parallelizeBuildables = "YES"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

+25
View File
@@ -12,6 +12,8 @@
<string></string>
<key>CFBundleIconFiles</key>
<array>
<string>Icon-Small</string>
<string>Icon-iOS7</string>
<string>Icon.png</string>
<string>Icon@2x.png</string>
</array>
@@ -33,6 +35,29 @@
<true/>
<key>NSMainNibFile</key>
<string>MainWindow</string>
<key>UILaunchImages</key>
<array>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>7.0</string>
<key>UILaunchImageName</key>
<string>Default-iOS7</string>
<key>UILaunchImageOrientation</key>
<string>Portrait</string>
<key>UILaunchImageSize</key>
<string>{320, 568}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>7.0</string>
<key>UILaunchImageName</key>
<string>Default-iOS7</string>
<key>UILaunchImageOrientation</key>
<string>Portrait</string>
<key>UILaunchImageSize</key>
<string>{320, 480}</string>
</dict>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
File diff suppressed because it is too large Load Diff
+77 -417
View File
@@ -1,417 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
<data>
<int key="IBDocument.SystemTarget">528</int>
<string key="IBDocument.SystemVersion">12C54</string>
<string key="IBDocument.InterfaceBuilderVersion">2840</string>
<string key="IBDocument.AppKitVersion">1187.34</string>
<string key="IBDocument.HIToolboxVersion">625.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="NS.object.0">1926</string>
</object>
<object class="NSArray" key="IBDocument.IntegratedClassDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>IBProxyObject</string>
<string>IBUICustomObject</string>
<string>IBUINavigationBar</string>
<string>IBUINavigationController</string>
<string>IBUINavigationItem</string>
<string>IBUIViewController</string>
<string>IBUIWindow</string>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</object>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
<integer value="1" key="NS.object.0"/>
</object>
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBProxyObject" id="841351856">
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBProxyObject" id="427554174">
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUICustomObject" id="664661524">
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIWindow" id="117978783">
<reference key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{320, 480}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC44ODYyNzQ1MDk4IDAuOTA1ODgyMzUyOSAwLjkyOTQxMTc2NDcAA</bytes>
</object>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<bool key="IBUIResizesToFullScreen">YES</bool>
</object>
<object class="IBUINavigationController" id="386664917">
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
<int key="IBUIInterfaceOrientation">1</int>
<int key="interfaceOrientation">1</int>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<bool key="IBUIHorizontal">NO</bool>
<object class="IBUINavigationBar" key="IBUINavigationBar" id="500961041">
<nil key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{0, 0}</string>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIMultipleTouchEnabled">YES</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="NSMutableArray" key="IBUIViewControllers">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIViewController" id="934427715">
<string key="IBUITitle">MBProgressHUD</string>
<object class="IBUINavigationItem" key="IBUINavigationItem" id="390734610">
<string key="IBUITitle">MBProgressHUD</string>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<reference key="IBUIParentViewController" ref="386664917"/>
<string key="IBUINibName">HudDemoViewController</string>
<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
<int key="IBUIInterfaceOrientation">1</int>
<int key="interfaceOrientation">1</int>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<bool key="IBUIHorizontal">NO</bool>
</object>
</object>
</object>
</object>
<object class="IBObjectContainer" key="IBDocument.Objects">
<object class="NSMutableArray" key="connectionRecords">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="664661524"/>
</object>
<int key="connectionID">4</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">window</string>
<reference key="source" ref="664661524"/>
<reference key="destination" ref="117978783"/>
</object>
<int key="connectionID">14</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">navController</string>
<reference key="source" ref="664661524"/>
<reference key="destination" ref="386664917"/>
</object>
<int key="connectionID">19</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBObjectRecord">
<int key="objectID">0</int>
<object class="NSArray" key="object" id="0">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="841351856"/>
<reference key="parent" ref="0"/>
<string key="objectName">File's Owner</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">3</int>
<reference key="object" ref="664661524"/>
<reference key="parent" ref="0"/>
<string key="objectName">HudDemo App Delegate</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="427554174"/>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">12</int>
<reference key="object" ref="117978783"/>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">15</int>
<reference key="object" ref="386664917"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="934427715"/>
<reference ref="500961041"/>
</object>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">16</int>
<reference key="object" ref="934427715"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="390734610"/>
</object>
<reference key="parent" ref="386664917"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">17</int>
<reference key="object" ref="500961041"/>
<reference key="parent" ref="386664917"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">18</int>
<reference key="object" ref="390734610"/>
<reference key="parent" ref="934427715"/>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>-1.CustomClassName</string>
<string>-1.IBPluginDependency</string>
<string>-2.CustomClassName</string>
<string>-2.IBPluginDependency</string>
<string>12.IBPluginDependency</string>
<string>15.IBPluginDependency</string>
<string>16.CustomClassName</string>
<string>16.IBPluginDependency</string>
<string>17.IBPluginDependency</string>
<string>18.IBPluginDependency</string>
<string>3.CustomClassName</string>
<string>3.IBPluginDependency</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>UIApplication</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>UIResponder</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>HudDemoViewController</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>HudDemoAppDelegate</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</object>
</object>
<object class="NSMutableDictionary" key="unlocalizedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference key="dict.sortedKeys" ref="0"/>
<reference key="dict.values" ref="0"/>
</object>
<nil key="activeLocalization"/>
<object class="NSMutableDictionary" key="localizations">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference key="dict.sortedKeys" ref="0"/>
<reference key="dict.values" ref="0"/>
</object>
<nil key="sourceID"/>
<int key="maxID">19</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBPartialClassDescription">
<string key="className">HudDemoAppDelegate</string>
<string key="superclassName">NSObject</string>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>navController</string>
<string>window</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>UINavigationController</string>
<string>UIWindow</string>
</object>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>navController</string>
<string>window</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBToOneOutletInfo">
<string key="name">navController</string>
<string key="candidateClassName">UINavigationController</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">window</string>
<string key="candidateClassName">UIWindow</string>
</object>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/HudDemoAppDelegate.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">HudDemoViewController</string>
<string key="superclassName">UIViewController</string>
<object class="NSMutableDictionary" key="actions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>showOnWindow:</string>
<string>showSimple:</string>
<string>showTextOnly:</string>
<string>showURL:</string>
<string>showUsingBlocks:</string>
<string>showWIthLabelAnnularDeterminate:</string>
<string>showWithColor:</string>
<string>showWithCustomView:</string>
<string>showWithDetailsLabel:</string>
<string>showWithGradient:</string>
<string>showWithLabel:</string>
<string>showWithLabelDeterminate:</string>
<string>showWithLabelMixed:</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>id</string>
<string>id</string>
<string>id</string>
<string>id</string>
<string>id</string>
<string>id</string>
<string>id</string>
<string>id</string>
<string>id</string>
<string>id</string>
<string>id</string>
<string>id</string>
<string>id</string>
</object>
</object>
<object class="NSMutableDictionary" key="actionInfosByName">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>showOnWindow:</string>
<string>showSimple:</string>
<string>showTextOnly:</string>
<string>showURL:</string>
<string>showUsingBlocks:</string>
<string>showWIthLabelAnnularDeterminate:</string>
<string>showWithColor:</string>
<string>showWithCustomView:</string>
<string>showWithDetailsLabel:</string>
<string>showWithGradient:</string>
<string>showWithLabel:</string>
<string>showWithLabelDeterminate:</string>
<string>showWithLabelMixed:</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBActionInfo">
<string key="name">showOnWindow:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo">
<string key="name">showSimple:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo">
<string key="name">showTextOnly:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo">
<string key="name">showURL:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo">
<string key="name">showUsingBlocks:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo">
<string key="name">showWIthLabelAnnularDeterminate:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo">
<string key="name">showWithColor:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo">
<string key="name">showWithCustomView:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo">
<string key="name">showWithDetailsLabel:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo">
<string key="name">showWithGradient:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo">
<string key="name">showWithLabel:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo">
<string key="name">showWithLabelDeterminate:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo">
<string key="name">showWithLabelMixed:</string>
<string key="candidateClassName">id</string>
</object>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/HudDemoViewController.h</string>
</object>
</object>
</object>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
<integer value="528" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
<real value="1536" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
<integer value="3000" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<string key="IBCocoaTouchPluginVersion">1926</string>
</data>
</archive>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4457.9" systemVersion="12E55" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
<dependencies>
<deployment version="528" identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3682.9"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="UIApplication">
<connections>
<outlet property="delegate" destination="3" id="4"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<customObject id="3" userLabel="HudDemo App Delegate" customClass="HudDemoAppDelegate">
<connections>
<outlet property="navController" destination="15" id="19"/>
<outlet property="window" destination="12" id="14"/>
</connections>
</customObject>
<window opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="12">
<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" red="0.8862745098" green="0.90588235289999997" blue="0.92941176469999998" alpha="1" colorSpace="calibratedRGB"/>
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
</window>
<navigationController id="15">
<extendedEdge key="edgesForExtendedLayout"/>
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
<nil key="simulatedTopBarMetrics"/>
<nil key="simulatedBottomBarMetrics"/>
<simulatedOrientationMetrics key="simulatedOrientationMetrics"/>
<nil key="simulatedDestinationMetrics"/>
<navigationBar key="navigationBar" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" id="17">
<autoresizingMask key="autoresizingMask"/>
</navigationBar>
<viewControllers>
<viewController title="MBProgressHUD" nibName="HudDemoViewController" id="16" customClass="HudDemoViewController">
<extendedEdge key="edgesForExtendedLayout"/>
<navigationItem key="navigationItem" title="MBProgressHUD" id="18"/>
<nil key="simulatedStatusBarMetrics"/>
<nil key="simulatedTopBarMetrics"/>
<nil key="simulatedBottomBarMetrics"/>
<simulatedOrientationMetrics key="simulatedOrientationMetrics"/>
<nil key="simulatedDestinationMetrics"/>
</viewController>
</viewControllers>
</navigationController>
</objects>
<classes>
<class className="HudDemoAppDelegate" superclassName="NSObject">
<source key="sourceIdentifier" type="project" relativePath="./Classes/HudDemoAppDelegate.h"/>
<relationships>
<relationship kind="outlet" name="navController" candidateClass="UINavigationController"/>
<relationship kind="outlet" name="window" candidateClass="UIWindow"/>
</relationships>
</class>
<class className="HudDemoViewController" superclassName="UIViewController">
<source key="sourceIdentifier" type="project" relativePath="./Classes/HudDemoViewController.h"/>
<relationships>
<relationship kind="action" name="showOnWindow:"/>
<relationship kind="action" name="showSimple:"/>
<relationship kind="action" name="showTextOnly:"/>
<relationship kind="action" name="showURL:"/>
<relationship kind="action" name="showUsingBlocks:"/>
<relationship kind="action" name="showWIthLabelAnnularDeterminate:"/>
<relationship kind="action" name="showWithColor:"/>
<relationship kind="action" name="showWithCustomView:"/>
<relationship kind="action" name="showWithDetailsLabel:"/>
<relationship kind="action" name="showWithGradient:"/>
<relationship kind="action" name="showWithLabel:"/>
<relationship kind="action" name="showWithLabelDeterminate:"/>
<relationship kind="action" name="showWithLabelDeterminateHorizontalBar:"/>
<relationship kind="action" name="showWithLabelMixed:"/>
</relationships>
</class>
</classes>
</document>
+15
View File
@@ -0,0 +1,15 @@
//
// Prefix header for all source files of the 'MBProgressHUD' target in the 'MBProgressHUD' project
//
#import <Availability.h>
#ifndef __IPHONE_3_0
#warning "This project uses features only available in iOS SDK 3.0 and later."
#endif
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <CoreGraphics/CoreGraphics.h>
#endif
Executable → Regular
+34 -3
View File
@@ -1,6 +1,6 @@
//
// MBProgressHUD.h
// Version 0.7
// Version 0.9
// Created by Matej Bukovinski on 2.4.09.
//
@@ -344,6 +344,12 @@ typedef void (^MBProgressHUDCompletionBlock)();
*/
@property (assign) float margin;
/**
* The corner radius for the HUD
* Defaults to 10.0
*/
@property (assign) float cornerRadius;
/**
* Cover the HUD background view with a radial gradient.
*/
@@ -388,11 +394,27 @@ typedef void (^MBProgressHUDCompletionBlock)();
*/
@property (MB_STRONG) UIFont* labelFont;
/**
* Font to be used for the details label. Set this property if the default is not adequate.
/**
* Color to be used for the main label. Set this property if the default is not adequate.
*/
@property (MB_STRONG) UIColor* labelColor;
/**
* Font to be used for the details label. Set this property if the default is not adequate.
*/
@property (MB_STRONG) UIFont* detailsLabelFont;
/**
* Color to be used for the details label. Set this property if the default is not adequate.
*/
@property (MB_STRONG) UIColor* detailsLabelColor;
/**
* The color of the activity indicator. Defaults to [UIColor whiteColor]
* Does nothing on pre iOS 5.
*/
@property (MB_STRONG) UIColor *activityIndicatorColor;
/**
* The progress of the progress indicator, from 0.0 to 1.0. Defaults to 0.0.
*/
@@ -403,6 +425,15 @@ typedef void (^MBProgressHUDCompletionBlock)();
*/
@property (assign) CGSize minSize;
/**
* The actual size of the HUD bezel.
* You can use this to limit touch handling on the bezel aria only.
* @see https://github.com/jdg/MBProgressHUD/pull/200
*/
@property (atomic, assign, readonly) CGSize size;
/**
* Force the HUD dimensions to be equal if possible.
*/
Executable → Regular
+137 -108
View File
@@ -1,10 +1,11 @@
//
// MBProgressHUD.m
// Version 0.7
// Version 0.9
// Created by Matej Bukovinski on 2.4.09.
//
#import "MBProgressHUD.h"
#import <tgmath.h>
#if __has_feature(objc_arc)
@@ -23,43 +24,37 @@
#define MBLabelAlignmentCenter UITextAlignmentCenter
#endif
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000
#define MB_TEXTSIZE(text, font) [text length] > 0 ? [text \
sizeWithAttributes:@{NSFontAttributeName:font}] : CGSizeZero;
#else
#define MB_TEXTSIZE(text, font) [text length] > 0 ? [text sizeWithFont:font] : CGSizeZero;
#endif
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000
#define MB_MULTILINE_TEXTSIZE(text, font, maxSize, mode) [text length] > 0 ? [text \
boundingRectWithSize:maxSize options:(NSStringDrawingUsesLineFragmentOrigin) \
attributes:@{NSFontAttributeName:font} context:nil].size : CGSizeZero;
#else
#define MB_MULTILINE_TEXTSIZE(text, font, maxSize, mode) [text length] > 0 ? [text \
sizeWithFont:font constrainedToSize:maxSize lineBreakMode:mode] : CGSizeZero;
#endif
#ifndef kCFCoreFoundationVersionNumber_iOS_7_0
#define kCFCoreFoundationVersionNumber_iOS_7_0 847.20
#endif
#ifndef kCFCoreFoundationVersionNumber_iOS_8_0
#define kCFCoreFoundationVersionNumber_iOS_8_0 1129.15
#endif
static const CGFloat kPadding = 4.f;
static const CGFloat kLabelFontSize = 16.f;
static const CGFloat kDetailsLabelFontSize = 12.f;
@interface MBProgressHUD ()
- (void)setupLabels;
- (void)registerForKVO;
- (void)unregisterFromKVO;
- (NSArray *)observableKeypaths;
- (void)registerForNotifications;
- (void)unregisterFromNotifications;
- (void)updateUIForKeypath:(NSString *)keyPath;
- (void)hideUsingAnimation:(BOOL)animated;
- (void)showUsingAnimation:(BOOL)animated;
- (void)done;
- (void)updateIndicators;
- (void)handleGraceTimer:(NSTimer *)theTimer;
- (void)handleMinShowTimer:(NSTimer *)theTimer;
- (void)setTransformForCurrentOrientation:(BOOL)animated;
- (void)cleanUp;
- (void)launchExecution;
- (void)deviceOrientationDidChange:(NSNotification *)notification;
- (void)hideDelayed:(NSNumber *)animated;
@property (atomic, MB_STRONG) UIView *indicator;
@property (atomic, MB_STRONG) NSTimer *graceTimer;
@property (atomic, MB_STRONG) NSTimer *minShowTimer;
@property (atomic, MB_STRONG) NSDate *showStarted;
@property (atomic, assign) CGSize size;
@end
@implementation MBProgressHUD {
@interface MBProgressHUD () {
BOOL useAnimation;
SEL methodForExecution;
id targetForExecution;
@@ -70,6 +65,17 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
CGAffineTransform rotationTransform;
}
@property (atomic, MB_STRONG) UIView *indicator;
@property (atomic, MB_STRONG) NSTimer *graceTimer;
@property (atomic, MB_STRONG) NSTimer *minShowTimer;
@property (atomic, MB_STRONG) NSDate *showStarted;
@end
@implementation MBProgressHUD
#pragma mark - Properties
@synthesize animationType;
@@ -77,7 +83,9 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
@synthesize opacity;
@synthesize color;
@synthesize labelFont;
@synthesize labelColor;
@synthesize detailsLabelFont;
@synthesize detailsLabelColor;
@synthesize indicator;
@synthesize xOffset;
@synthesize yOffset;
@@ -98,6 +106,7 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
@synthesize detailsLabelText;
@synthesize progress;
@synthesize size;
@synthesize activityIndicatorColor;
#if NS_BLOCKS_AVAILABLE
@synthesize completionBlock;
#endif
@@ -162,19 +171,24 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
self.labelText = nil;
self.detailsLabelText = nil;
self.opacity = 0.8f;
self.color = nil;
self.color = nil;
self.labelFont = [UIFont boldSystemFontOfSize:kLabelFontSize];
self.labelColor = [UIColor whiteColor];
self.detailsLabelFont = [UIFont boldSystemFontOfSize:kDetailsLabelFontSize];
self.detailsLabelColor = [UIColor whiteColor];
self.activityIndicatorColor = [UIColor whiteColor];
self.xOffset = 0.0f;
self.yOffset = 0.0f;
self.dimBackground = NO;
self.margin = 20.0f;
self.cornerRadius = 10.0f;
self.graceTime = 0.0f;
self.minShowTime = 0.0f;
self.removeFromSuperViewOnHide = NO;
self.minSize = CGSizeZero;
self.square = NO;
self.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin
self.contentMode = UIViewContentModeCenter;
self.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin
| UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
// Transparent background
@@ -217,6 +231,10 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
[minShowTimer release];
[showStarted release];
[customView release];
[labelFont release];
[labelColor release];
[detailsLabelFont release];
[detailsLabelColor release];
#if NS_BLOCKS_AVAILABLE
[completionBlock release];
#endif
@@ -280,9 +298,14 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
#pragma mark - View Hierrarchy
- (BOOL)shouldPerformOrientationTransform {
BOOL isPreiOS8 = NSFoundationVersionNumber < kCFCoreFoundationVersionNumber_iOS_8_0;
// prior to iOS8 code needs to take care of rotation if it is being added to the window
return isPreiOS8 && [self.superview isKindOfClass:[UIWindow class]];
}
- (void)didMoveToSuperview {
// We need to take care of rotation ourselfs if we're adding the HUD to a window
if ([self.superview isKindOfClass:[UIWindow class]]) {
if ([self shouldPerformOrientationTransform]) {
[self setTransformForCurrentOrientation:NO];
}
}
@@ -341,10 +364,11 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
}
- (void)done {
[NSObject cancelPreviousPerformRequestsWithTarget:self];
isFinished = YES;
self.alpha = 0.0f;
if ([delegate respondsToSelector:@selector(hudWasHidden:)]) {
[delegate performSelector:@selector(hudWasHidden:) withObject:self];
if (removeFromSuperViewOnHide) {
[self removeFromSuperview];
}
#if NS_BLOCKS_AVAILABLE
if (self.completionBlock) {
@@ -352,8 +376,8 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
self.completionBlock = NULL;
}
#endif
if (removeFromSuperViewOnHide) {
[self removeFromSuperview];
if ([delegate respondsToSelector:@selector(hudWasHidden:)]) {
[delegate performSelector:@selector(hudWasHidden:) withObject:self];
}
}
@@ -391,12 +415,12 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
self.taskInProgress = YES;
self.completionBlock = completion;
dispatch_async(queue, ^(void) {
block();
dispatch_async(dispatch_get_main_queue(), ^(void) {
[self cleanUp];
});
});
[self show:animated];
block();
dispatch_async(dispatch_get_main_queue(), ^(void) {
[self cleanUp];
});
});
[self show:animated];
}
#endif
@@ -416,7 +440,6 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
- (void)cleanUp {
taskInProgress = NO;
self.indicator = nil;
#if !__has_feature(objc_arc)
[targetForExecution release];
[objectForExecution release];
@@ -435,7 +458,7 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
label.textAlignment = MBLabelAlignmentCenter;
label.opaque = NO;
label.backgroundColor = [UIColor clearColor];
label.textColor = [UIColor whiteColor];
label.textColor = self.labelColor;
label.font = self.labelFont;
label.text = self.labelText;
[self addSubview:label];
@@ -446,7 +469,7 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
detailsLabel.textAlignment = MBLabelAlignmentCenter;
detailsLabel.opaque = NO;
detailsLabel.backgroundColor = [UIColor clearColor];
detailsLabel.textColor = [UIColor whiteColor];
detailsLabel.textColor = self.detailsLabelColor;
detailsLabel.numberOfLines = 0;
detailsLabel.font = self.detailsLabelFont;
detailsLabel.text = self.detailsLabelText;
@@ -458,18 +481,23 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
BOOL isActivityIndicator = [indicator isKindOfClass:[UIActivityIndicatorView class]];
BOOL isRoundIndicator = [indicator isKindOfClass:[MBRoundProgressView class]];
if (mode == MBProgressHUDModeIndeterminate && !isActivityIndicator) {
// Update to indeterminate indicator
[indicator removeFromSuperview];
self.indicator = MB_AUTORELEASE([[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]);
[(UIActivityIndicatorView *)indicator startAnimating];
[self addSubview:indicator];
if (mode == MBProgressHUDModeIndeterminate) {
if (!isActivityIndicator) {
// Update to indeterminate indicator
[indicator removeFromSuperview];
self.indicator = MB_AUTORELEASE([[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]);
[(UIActivityIndicatorView *)indicator startAnimating];
[self addSubview:indicator];
}
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 50000
[(UIActivityIndicatorView *)indicator setColor:self.activityIndicatorColor];
#endif
}
else if (mode == MBProgressHUDModeDeterminateHorizontalBar) {
// Update to bar determinate indicator
[indicator removeFromSuperview];
self.indicator = MB_AUTORELEASE([[MBBarProgressView alloc] init]);
self.indicator = MB_AUTORELEASE([[MBBarProgressView alloc] init]);
[self addSubview:indicator];
}
else if (mode == MBProgressHUDModeDeterminate || mode == MBProgressHUDModeAnnularDeterminate) {
@@ -497,6 +525,7 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
#pragma mark - Layout
- (void)layoutSubviews {
[super layoutSubviews];
// Entirely cover the parent view
UIView *parent = self.superview;
@@ -514,7 +543,7 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
totalSize.width = MAX(totalSize.width, indicatorF.size.width);
totalSize.height += indicatorF.size.height;
CGSize labelSize = [label.text sizeWithFont:label.font];
CGSize labelSize = MB_TEXTSIZE(label.text, label.font);
labelSize.width = MIN(labelSize.width, maxWidth);
totalSize.width = MAX(totalSize.width, labelSize.width);
totalSize.height += labelSize.height;
@@ -524,8 +553,7 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
CGFloat remainingHeight = bounds.size.height - totalSize.height - kPadding - 4 * margin;
CGSize maxSize = CGSizeMake(maxWidth, remainingHeight);
CGSize detailsLabelSize = [detailsLabel.text sizeWithFont:detailsLabel.font
constrainedToSize:maxSize lineBreakMode:detailsLabel.lineBreakMode];
CGSize detailsLabelSize = MB_MULTILINE_TEXTSIZE(detailsLabel.text, detailsLabel.font, maxSize, detailsLabel.lineBreakMode);
totalSize.width = MAX(totalSize.width, detailsLabelSize.width);
totalSize.height += detailsLabelSize.height;
if (detailsLabelSize.height > 0.f && (indicatorF.size.height > 0.f || labelSize.height > 0.f)) {
@@ -536,10 +564,10 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
totalSize.height += 2 * margin;
// Position elements
CGFloat yPos = roundf(((bounds.size.height - totalSize.height) / 2)) + margin + yOffset;
CGFloat yPos = round(((bounds.size.height - totalSize.height) / 2)) + margin + yOffset;
CGFloat xPos = xOffset;
indicatorF.origin.y = yPos;
indicatorF.origin.x = roundf((bounds.size.width - indicatorF.size.width) / 2) + xPos;
indicatorF.origin.x = round((bounds.size.width - indicatorF.size.width) / 2) + xPos;
indicator.frame = indicatorF;
yPos += indicatorF.size.height;
@@ -548,7 +576,7 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
}
CGRect labelF;
labelF.origin.y = yPos;
labelF.origin.x = roundf((bounds.size.width - labelSize.width) / 2) + xPos;
labelF.origin.x = round((bounds.size.width - labelSize.width) / 2) + xPos;
labelF.size = labelSize;
label.frame = labelF;
yPos += labelF.size.height;
@@ -558,7 +586,7 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
}
CGRect detailsLabelF;
detailsLabelF.origin.y = yPos;
detailsLabelF.origin.x = roundf((bounds.size.width - detailsLabelSize.width) / 2) + xPos;
detailsLabelF.origin.x = round((bounds.size.width - detailsLabelSize.width) / 2) + xPos;
detailsLabelF.size = detailsLabelSize;
detailsLabel.frame = detailsLabelF;
@@ -579,7 +607,7 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
totalSize.height = minSize.height;
}
self.size = totalSize;
size = totalSize;
}
#pragma mark BG Drawing
@@ -608,20 +636,20 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
CGGradientRelease(gradient);
}
// Set background rect color
if (self.color) {
CGContextSetFillColorWithColor(context, self.color.CGColor);
} else {
CGContextSetGrayFillColor(context, 0.0f, self.opacity);
}
// Set background rect color
if (self.color) {
CGContextSetFillColorWithColor(context, self.color.CGColor);
} else {
CGContextSetGrayFillColor(context, 0.0f, self.opacity);
}
// Center HUD
CGRect allRect = self.bounds;
// Draw rounded HUD backgroud rect
CGRect boxRect = CGRectMake(roundf((allRect.size.width - size.width) / 2) + self.xOffset,
roundf((allRect.size.height - size.height) / 2) + self.yOffset, size.width, size.height);
float radius = 10.0f;
CGRect boxRect = CGRectMake(round((allRect.size.width - size.width) / 2) + self.xOffset,
round((allRect.size.height - size.height) / 2) + self.yOffset, size.width, size.height);
float radius = self.cornerRadius;
CGContextBeginPath(context);
CGContextMoveToPoint(context, CGRectGetMinX(boxRect) + radius, CGRectGetMinY(boxRect));
CGContextAddArc(context, CGRectGetMaxX(boxRect) - radius, CGRectGetMinY(boxRect) + radius, radius, 3 * (float)M_PI / 2, 0, 0);
@@ -649,8 +677,8 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
}
- (NSArray *)observableKeypaths {
return [NSArray arrayWithObjects:@"mode", @"customView", @"labelText", @"labelFont",
@"detailsLabelText", @"detailsLabelFont", @"progress", nil];
return [NSArray arrayWithObjects:@"mode", @"customView", @"labelText", @"labelFont", @"labelColor",
@"detailsLabelText", @"detailsLabelFont", @"detailsLabelColor", @"progress", @"activityIndicatorColor", nil];
}
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
@@ -662,19 +690,24 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
}
- (void)updateUIForKeypath:(NSString *)keyPath {
if ([keyPath isEqualToString:@"mode"] || [keyPath isEqualToString:@"customView"]) {
if ([keyPath isEqualToString:@"mode"] || [keyPath isEqualToString:@"customView"] ||
[keyPath isEqualToString:@"activityIndicatorColor"]) {
[self updateIndicators];
} else if ([keyPath isEqualToString:@"labelText"]) {
label.text = self.labelText;
} else if ([keyPath isEqualToString:@"labelFont"]) {
label.font = self.labelFont;
} else if ([keyPath isEqualToString:@"labelColor"]) {
label.textColor = self.labelColor;
} else if ([keyPath isEqualToString:@"detailsLabelText"]) {
detailsLabel.text = self.detailsLabelText;
} else if ([keyPath isEqualToString:@"detailsLabelFont"]) {
detailsLabel.font = self.detailsLabelFont;
} else if ([keyPath isEqualToString:@"detailsLabelColor"]) {
detailsLabel.textColor = self.detailsLabelColor;
} else if ([keyPath isEqualToString:@"progress"]) {
if ([indicator respondsToSelector:@selector(setProgress:)]) {
[(id)indicator setProgress:progress];
[(id)indicator setValue:@(progress) forKey:@"progress"];
}
return;
}
@@ -686,27 +719,29 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
- (void)registerForNotifications {
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(deviceOrientationDidChange:)
name:UIDeviceOrientationDidChangeNotification object:nil];
[nc addObserver:self selector:@selector(statusBarOrientationDidChange:)
name:UIApplicationDidChangeStatusBarOrientationNotification object:nil];
}
- (void)unregisterFromNotifications {
[[NSNotificationCenter defaultCenter] removeObserver:self];
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc removeObserver:self name:UIApplicationDidChangeStatusBarOrientationNotification object:nil];
}
- (void)deviceOrientationDidChange:(NSNotification *)notification {
- (void)statusBarOrientationDidChange:(NSNotification *)notification {
UIView *superview = self.superview;
if (!superview) {
return;
} else if ([superview isKindOfClass:[UIWindow class]]) {
} else if ([self shouldPerformOrientationTransform]) {
[self setTransformForCurrentOrientation:YES];
} else {
self.bounds = self.superview.bounds;
self.frame = self.superview.bounds;
[self setNeedsDisplay];
}
}
- (void)setTransformForCurrentOrientation:(BOOL)animated {
- (void)setTransformForCurrentOrientation:(BOOL)animated {
// Stay in sync with the superview
if (self.superview) {
self.bounds = self.superview.bounds;
@@ -728,6 +763,7 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
if (animated) {
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.3];
}
[self setTransform:rotationTransform];
if (animated) {
@@ -779,10 +815,11 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
if (_annular) {
// Draw background
CGFloat lineWidth = 5.f;
BOOL isPreiOS7 = NSFoundationVersionNumber < kCFCoreFoundationVersionNumber_iOS_7_0;
CGFloat lineWidth = isPreiOS7 ? 5.f : 2.f;
UIBezierPath *processBackgroundPath = [UIBezierPath bezierPath];
processBackgroundPath.lineWidth = lineWidth;
processBackgroundPath.lineCapStyle = kCGLineCapRound;
processBackgroundPath.lineCapStyle = kCGLineCapButt;
CGPoint center = CGPointMake(self.bounds.size.width/2, self.bounds.size.height/2);
CGFloat radius = (self.bounds.size.width - lineWidth)/2;
CGFloat startAngle = - ((float)M_PI / 2); // 90 degrees
@@ -792,7 +829,7 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
[processBackgroundPath stroke];
// Draw progress
UIBezierPath *processPath = [UIBezierPath bezierPath];
processPath.lineCapStyle = kCGLineCapRound;
processPath.lineCapStyle = isPreiOS7 ? kCGLineCapRound : kCGLineCapSquare;
processPath.lineWidth = lineWidth;
endAngle = (self.progress * 2 * (float)M_PI) + startAngle;
[processPath addArcWithCenter:center radius:radius startAngle:startAngle endAngle:endAngle clockwise:YES];
@@ -852,8 +889,8 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
}
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
self = [super initWithFrame:frame];
if (self) {
_progress = 0.f;
_lineColor = [UIColor whiteColor];
_progressColor = [UIColor whiteColor];
@@ -861,8 +898,8 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
self.backgroundColor = [UIColor clearColor];
self.opaque = NO;
[self registerForKVO];
}
return self;
}
return self;
}
- (void)dealloc {
@@ -880,12 +917,11 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
// setup properties
CGContextSetLineWidth(context, 2);
CGContextSetStrokeColorWithColor(context,[_lineColor CGColor]);
CGContextSetFillColorWithColor(context, [_progressRemainingColor CGColor]);
// draw line border
// Draw background
float radius = (rect.size.height / 2) - 2;
CGContextMoveToPoint(context, 2, rect.size.height/2);
CGContextAddArcToPoint(context, 2, 2, radius + 2, 2, radius);
@@ -896,7 +932,7 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
CGContextAddArcToPoint(context, 2, rect.size.height - 2, 2, rect.size.height/2, radius);
CGContextFillPath(context);
// draw progress background
// Draw border
CGContextMoveToPoint(context, 2, rect.size.height/2);
CGContextAddArcToPoint(context, 2, 2, radius + 2, 2, radius);
CGContextAddLineToPoint(context, rect.size.width - radius - 2, 2);
@@ -906,20 +942,17 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
CGContextAddArcToPoint(context, 2, rect.size.height - 2, 2, rect.size.height/2, radius);
CGContextStrokePath(context);
// setup to draw progress color
CGContextSetFillColorWithColor(context, [_progressColor CGColor]);
radius = radius - 2;
float amount = self.progress * rect.size.width;
// if progress is in the middle area
// Progress in the middle area
if (amount >= radius + 4 && amount <= (rect.size.width - radius - 4)) {
// top
CGContextMoveToPoint(context, 4, rect.size.height/2);
CGContextAddArcToPoint(context, 4, 4, radius + 4, 4, radius);
CGContextAddLineToPoint(context, amount, 4);
CGContextAddLineToPoint(context, amount, radius + 4);
// bottom
CGContextMoveToPoint(context, 4, rect.size.height/2);
CGContextAddArcToPoint(context, 4, rect.size.height - 4, radius + 4, rect.size.height - 4, radius);
CGContextAddLineToPoint(context, amount, rect.size.height - 4);
@@ -928,11 +961,10 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
CGContextFillPath(context);
}
// progress is in the right arc
// Progress in the right arc
else if (amount > radius + 4) {
float x = amount - (rect.size.width - radius - 4);
// top
CGContextMoveToPoint(context, 4, rect.size.height/2);
CGContextAddArcToPoint(context, 4, 4, radius + 4, 4, radius);
CGContextAddLineToPoint(context, rect.size.width - radius - 4, 4);
@@ -940,8 +972,7 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
if (isnan(angle)) angle = 0;
CGContextAddArc(context, rect.size.width - radius - 4, rect.size.height/2, radius, M_PI, angle, 0);
CGContextAddLineToPoint(context, amount, rect.size.height/2);
// bottom
CGContextMoveToPoint(context, 4, rect.size.height/2);
CGContextAddArcToPoint(context, 4, rect.size.height - 4, radius + 4, rect.size.height - 4, radius);
CGContextAddLineToPoint(context, rect.size.width - radius - 4, rect.size.height - 4);
@@ -953,14 +984,12 @@ static const CGFloat kDetailsLabelFontSize = 12.f;
CGContextFillPath(context);
}
// progress is in the left arc
// Progress is in the left arc
else if (amount < radius + 4 && amount > 0) {
// top
CGContextMoveToPoint(context, 4, rect.size.height/2);
CGContextAddArcToPoint(context, 4, 4, radius + 4, 4, radius);
CGContextAddLineToPoint(context, radius + 4, rect.size.height/2);
// bottom
CGContextMoveToPoint(context, 4, rect.size.height/2);
CGContextAddArcToPoint(context, 4, rect.size.height - 4, radius + 4, rect.size.height - 4, radius);
CGContextAddLineToPoint(context, radius + 4, rect.size.height/2);
+1 -1
View File
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "MBProgressHUD"
s.version = "0.7"
s.version = "0.9"
s.summary = "An iOS activity indicator view."
s.description = <<-DESC
MBProgressHUD is an iOS drop-in class that displays a translucent HUD
+48 -27
View File
@@ -7,14 +7,28 @@
objects = {
/* Begin PBXBuildFile section */
1315DD7617804CBC0032507D /* MBProgressHUD.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = D286A7511518C70F00E13FB8 /* MBProgressHUD.h */; };
D286A74D1518C70F00E13FB8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D286A74C1518C70F00E13FB8 /* Foundation.framework */; };
D286A7531518C70F00E13FB8 /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = D286A7521518C70F00E13FB8 /* MBProgressHUD.m */; };
D286A75E1518C89600E13FB8 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D286A75D1518C89600E13FB8 /* UIKit.framework */; };
D286A76F1518CAAD00E13FB8 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D286A76E1518CAAD00E13FB8 /* CoreGraphics.framework */; };
D286A7851518CBEE00E13FB8 /* MBProgressHUD.h in Headers */ = {isa = PBXBuildFile; fileRef = D286A7511518C70F00E13FB8 /* MBProgressHUD.h */; settings = {ATTRIBUTES = (Public, ); }; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
1315DD7517804C970032507D /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "include/${PRODUCT_NAME}";
dstSubfolderSpec = 16;
files = (
1315DD7617804CBC0032507D /* MBProgressHUD.h in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
1315DD73178045000032507D /* MBProgressHUD-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "MBProgressHUD-Prefix.pch"; sourceTree = SOURCE_ROOT; };
D286A7491518C70F00E13FB8 /* libMBProgressHUD.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMBProgressHUD.a; sourceTree = BUILT_PRODUCTS_DIR; };
D286A74C1518C70F00E13FB8 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
D286A7511518C70F00E13FB8 /* MBProgressHUD.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MBProgressHUD.h; sourceTree = SOURCE_ROOT; };
@@ -28,15 +42,23 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D286A76F1518CAAD00E13FB8 /* CoreGraphics.framework in Frameworks */,
D286A75E1518C89600E13FB8 /* UIKit.framework in Frameworks */,
D286A74D1518C70F00E13FB8 /* Foundation.framework in Frameworks */,
D286A76F1518CAAD00E13FB8 /* CoreGraphics.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
1315DD72178044770032507D /* Supporting Files */ = {
isa = PBXGroup;
children = (
1315DD73178045000032507D /* MBProgressHUD-Prefix.pch */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
D286A73E1518C70E00E13FB8 = {
isa = PBXGroup;
children = (
@@ -57,9 +79,9 @@
D286A74B1518C70F00E13FB8 /* Frameworks */ = {
isa = PBXGroup;
children = (
D286A76E1518CAAD00E13FB8 /* CoreGraphics.framework */,
D286A75D1518C89600E13FB8 /* UIKit.framework */,
D286A74C1518C70F00E13FB8 /* Foundation.framework */,
D286A76E1518CAAD00E13FB8 /* CoreGraphics.framework */,
);
name = Frameworks;
sourceTree = "<group>";
@@ -69,23 +91,13 @@
children = (
D286A7511518C70F00E13FB8 /* MBProgressHUD.h */,
D286A7521518C70F00E13FB8 /* MBProgressHUD.m */,
1315DD72178044770032507D /* Supporting Files */,
);
path = MBProgressHUD;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
D286A7471518C70F00E13FB8 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
D286A7851518CBEE00E13FB8 /* MBProgressHUD.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
D286A7481518C70F00E13FB8 /* MBProgressHUD */ = {
isa = PBXNativeTarget;
@@ -93,7 +105,7 @@
buildPhases = (
D286A7451518C70F00E13FB8 /* Sources */,
D286A7461518C70F00E13FB8 /* Frameworks */,
D286A7471518C70F00E13FB8 /* Headers */,
1315DD7517804C970032507D /* CopyFiles */,
);
buildRules = (
);
@@ -147,8 +159,11 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -162,10 +177,14 @@
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 3.0;
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
};
name = Debug;
@@ -174,18 +193,24 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 3.0;
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
@@ -195,12 +220,10 @@
isa = XCBuildConfiguration;
buildSettings = {
DSTROOT = /tmp/MBProgressHUD.dst;
GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_PREFIX_HEADER = "";
INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)";
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "MBProgressHUD-Prefix.pch";
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
PUBLIC_HEADERS_FOLDER_PATH = "include/$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
name = Debug;
@@ -209,12 +232,10 @@
isa = XCBuildConfiguration;
buildSettings = {
DSTROOT = /tmp/MBProgressHUD.dst;
GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_PREFIX_HEADER = "";
INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)";
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "MBProgressHUD-Prefix.pch";
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
PUBLIC_HEADERS_FOLDER_PATH = "include/$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
name = Release;
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0460"
LastUpgradeVersion = "0600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@@ -39,6 +39,15 @@
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "D286A7481518C70F00E13FB8"
BuildableName = "libMBProgressHUD.a"
BlueprintName = "MBProgressHUD"
ReferencedContainer = "container:MBProgressHUD.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
+2 -2
View File
@@ -26,7 +26,7 @@ You will need LLVM 3.0 or later in order to build MBProgressHUD.
[CocoaPods](http://cocoapods.org) is the recommended way to add MBProgressHUD to your project.
1. Add a pod entry for MBProgressHUD to your Podfile `pod 'MBProgressHUD', '~> 0.6'`
1. Add a pod entry for MBProgressHUD to your Podfile `pod 'MBProgressHUD', '~> 0.8'`
2. Install the pod(s) by running `pod install`.
3. Include MBProgressHUD wherever you need it with `#import "MBProgressHUD.h"`.
@@ -98,4 +98,4 @@ This code is distributed under the terms and conditions of the [MIT license](LIC
## Change-log
A brief summary of each MBProgressHUD release can be found on the [wiky](https://github.com/matej/MBProgressHUD/wiki/Change-log).
A brief summary of each MBProgressHUD release can be found on the [wiki](https://github.com/matej/MBProgressHUD/wiki/Change-log).