From acb0e88f169c15d70c96cbdbd074f2e301a59dfd Mon Sep 17 00:00:00 2001 From: luckychunxiao Date: Mon, 3 Aug 2015 20:57:01 +0800 Subject: [PATCH] XIB UIView to BadgeView Change UIView from XIB to BadgeView --- Classes/CustomBadge.h | 1 + Classes/CustomBadge.m | 13 + Classes/CustomBadgeViewController.h | 3 +- Classes/CustomBadgeViewController.m | 3 +- .../UserInterfaceState.xcuserstate | Bin 0 -> 15383 bytes .../xcschemes/CustomBadge.xcscheme | 88 +++++ .../xcschemes/xcschememanagement.plist | 22 ++ CustomBadgeViewController.xib | 341 +++++++----------- 8 files changed, 268 insertions(+), 203 deletions(-) create mode 100644 CustomBadge.xcodeproj/project.xcworkspace/xcuserdata/lichunxiao.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 CustomBadge.xcodeproj/xcuserdata/lichunxiao.xcuserdatad/xcschemes/CustomBadge.xcscheme create mode 100644 CustomBadge.xcodeproj/xcuserdata/lichunxiao.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/Classes/CustomBadge.h b/Classes/CustomBadge.h index 1f44fb9..b2fc389 100644 --- a/Classes/CustomBadge.h +++ b/Classes/CustomBadge.h @@ -55,5 +55,6 @@ + (CustomBadge*) customBadgeWithString:(NSString *)badgeString withScale:(CGFloat)scale withStyle:(BadgeStyle*)style; - (void) autoBadgeSizeWithString:(NSString *)badgeString; +- (void) changeXibViewToBadgeWithString:(NSString*)badgeString withScale:(CGFloat)scale; @end diff --git a/Classes/CustomBadge.m b/Classes/CustomBadge.m index 83cbacb..f02e403 100644 --- a/Classes/CustomBadge.m +++ b/Classes/CustomBadge.m @@ -69,6 +69,19 @@ - (id) initWithString:(NSString *)badgeString withScale:(CGFloat)scale withStyle return self; } +// Use this method if you want to change UIView from Xib to BadgeView. +- (void) changeXibViewToBadgeWithString:(NSString*)badgeString withScale:(CGFloat)scale{ + + self.contentScaleFactor = [[UIScreen mainScreen] scale]; + self.backgroundColor = [UIColor clearColor]; + self.badgeText = badgeString; + self.badgeStyle = [BadgeStyle defaultStyle]; + self.badgeCornerRoundness = 0.4; + self.badgeScaleFactor = scale; + [self autoBadgeSizeWithString:badgeString]; + +} + // Use this method if you want to change the badge text after the first rendering - (void) autoBadgeSizeWithString:(NSString *)badgeString diff --git a/Classes/CustomBadgeViewController.h b/Classes/CustomBadgeViewController.h index e787b40..29523e5 100644 --- a/Classes/CustomBadgeViewController.h +++ b/Classes/CustomBadgeViewController.h @@ -34,10 +34,11 @@ #import - +#import "CustomBadge.h" @interface CustomBadgeViewController : UIViewController { } +@property (weak, nonatomic) IBOutlet CustomBadge *badgeViewFromXIB; @end diff --git a/Classes/CustomBadgeViewController.m b/Classes/CustomBadgeViewController.m index 8d854e8..cca5f71 100644 --- a/Classes/CustomBadgeViewController.m +++ b/Classes/CustomBadgeViewController.m @@ -33,7 +33,6 @@ of this software and associated documentation files (the "Software"), to deal */ #import "CustomBadgeViewController.h" -#import "CustomBadge.h" @implementation CustomBadgeViewController @@ -119,6 +118,8 @@ - (void) viewDidLoad [self.view addSubview:badge]; } + [_badgeViewFromXIB changeXibViewToBadgeWithString:@"9" withScale:1.0]; + } diff --git a/CustomBadge.xcodeproj/project.xcworkspace/xcuserdata/lichunxiao.xcuserdatad/UserInterfaceState.xcuserstate b/CustomBadge.xcodeproj/project.xcworkspace/xcuserdata/lichunxiao.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..62841b8186f026a7e47c7d73e661cc850a35c6cc GIT binary patch literal 15383 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 z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CustomBadge.xcodeproj/xcuserdata/lichunxiao.xcuserdatad/xcschemes/xcschememanagement.plist b/CustomBadge.xcodeproj/xcuserdata/lichunxiao.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..3d5e075 --- /dev/null +++ b/CustomBadge.xcodeproj/xcuserdata/lichunxiao.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + CustomBadge.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 1D6058900D05DD3D006BFB54 + + primary + + + + + diff --git a/CustomBadgeViewController.xib b/CustomBadgeViewController.xib index d207777..4b448ed 100644 --- a/CustomBadgeViewController.xib +++ b/CustomBadgeViewController.xib @@ -1,34 +1,25 @@ - + - 1056 - 10J869 - 823 - 1038.35 - 461.00 + 1808 + 14E46 + 7706 + 1348.17 + 758.70 com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 132 + 7703 - - YES - - - - YES + + IBProxyObject + IBUILabel + IBUIView + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - YES - - YES - - - YES - - - - YES + + + IBFilesOwner IBCocoaTouchFramework @@ -40,8 +31,55 @@ 274 - {320, 460} + + + + 274 + {{148, 427}, {25, 25}} + + + + + 3 + MQA + + IBCocoaTouchFramework + + + + 292 + {{53, 405}, {214, 21}} + + + + {251, 251} + NO + 7 + NO + IBCocoaTouchFramework + Change UIView from XIB to BadgeView + + + 0 + 1 + + 1 + 0 + 10 + + + HelveticaNeue + 10 + 16 + + NO + YES + + + {{0, 20}, {320, 460}} + + 3 MC43NQA @@ -51,12 +89,15 @@ NO + + IBUISimulatedFreeformSizeMetricsSentinel + Freeform + IBCocoaTouchFramework - + - - YES + view @@ -65,13 +106,20 @@ 7 - + + + badgeViewFromXIB + + + + 11 + + - - YES + 0 - + @@ -89,158 +137,96 @@ 6 - - YES - + + + + - - - - YES - - YES - -1.CustomClassName - -2.CustomClassName - 6.IBEditorWindowLastContentRect - 6.IBPluginDependency - - - YES - CustomBadgeViewController - UIResponder - {{239, 654}, {320, 480}} - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - - YES - - - YES - + + 9 + + + + + 10 + + + + + + CustomBadgeViewController + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UIResponder + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + CustomBadge + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + - - YES - - - YES - - + - 8 + 11 - - YES + - CustomBadgeViewController - UIViewController + CustomBadge + UIView IBProjectSource - Classes/CustomBadgeViewController.h - - - - - YES - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSError.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFileManager.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueObserving.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyedArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObject.h + ../Classes/CustomBadge.h - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSRunLoop.h + CustomBadgeViewController + UIViewController + + badgeViewFromXIB + CustomBadge - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSThread.h + + badgeViewFromXIB + + badgeViewFromXIB + CustomBadge + - - - NSObject - IBFrameworkSource - Foundation.framework/Headers/NSURL.h + IBProjectSource + ../Classes/CustomBadgeViewController.h + + - NSObject + UIGestureRecognizer + NSObject IBFrameworkSource - Foundation.framework/Headers/NSURLConnection.h + UIKit.framework/Headers/UIGestureRecognizer.h - NSObject + UILabel + UIView IBFrameworkSource - UIKit.framework/Headers/UIAccessibility.h + UIKit.framework/Headers/UILabel.h - NSObject + UIResponder + NSObject - IBFrameworkSource - UIKit.framework/Headers/UINibLoading.h - - - - NSObject - IBFrameworkSource UIKit.framework/Headers/UIResponder.h - - UIResponder - NSObject - - UISearchBar UIView @@ -257,20 +243,6 @@ UIKit.framework/Headers/UISearchDisplayController.h - - UIView - - IBFrameworkSource - UIKit.framework/Headers/UIPrintFormatter.h - - - - UIView - - IBFrameworkSource - UIKit.framework/Headers/UITextField.h - - UIView UIResponder @@ -279,34 +251,6 @@ UIKit.framework/Headers/UIView.h - - UIViewController - - IBFrameworkSource - UIKit.framework/Headers/UINavigationController.h - - - - UIViewController - - IBFrameworkSource - UIKit.framework/Headers/UIPopoverController.h - - - - UIViewController - - IBFrameworkSource - UIKit.framework/Headers/UISplitViewController.h - - - - UIViewController - - IBFrameworkSource - UIKit.framework/Headers/UITabBarController.h - - UIViewController UIResponder @@ -315,21 +259,16 @@ UIKit.framework/Headers/UIViewController.h - + 0 IBCocoaTouchFramework - - com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS - - + NO com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 - + YES - CustomBadge.xcodeproj 3 - 132