A drop in solution to set a placeholder or show UIView's size
you can use it for frame debug
or you can use it for size debug
The preferred way of installation is via CocoaPods. Just add
pod 'MMPlaceHolder'
and run pod install
. It will install the most recent version of MMPlaceHolder.
If you would like to use the latest code of MMPlaceHolder use:
pod 'MMPlaceHolder', :head
simply, you only need one line code.
[yourView showPlaceHolder];
or you can customize youself.
@interface UIView(MMPlaceHolder)
- (void)showPlaceHolder;
- (void)showPlaceHolderWithAllSubviews;
- (void)showPlaceHolderWithAllSubviews:(NSInteger)maxDepth;
- (void)showPlaceHolderWithLineColor:(UIColor*)lineColor;
- (void)showPlaceHolderWithLineColor:(UIColor*)lineColor backColor:(UIColor*)backColor;
- (void)showPlaceHolderWithLineColor:(UIColor*)lineColor backColor:(UIColor*)backColor arrowSize:(CGFloat)arrowSize;
- (void)showPlaceHolderWithLineColor:(UIColor*)lineColor backColor:(UIColor*)backColor arrowSize:(CGFloat)arrowSize lineWidth:(CGFloat)lineWidth;
- (void)showPlaceHolderWithLineColor:(UIColor*)lineColor backColor:(UIColor*)backColor arrowSize:(CGFloat)arrowSize lineWidth:(CGFloat)lineWidth frameWidth:(CGFloat)frameWidth frameColor:(UIColor*)frameColor;
- (void)hidePlaceHolder;
- (void)hidePlaceHolderWithAllSubviews;
- (void)removePlaceHolder;
- (void)removePlaceHolderWithAllSubviews;
- (MMPlaceHolder *)getPlaceHolder;
@end
and you can use the global configuration
@interface MMPlaceHolderConfig : NSObject
+ (MMPlaceHolderConfig*) defaultConfig;
@property (nonatomic, strong) UIColor *backColor;
@property (nonatomic, assign) CGFloat arrowSize;
@property (nonatomic, strong) UIColor *lineColor;
@property (nonatomic, assign) CGFloat lineWidth;
@property (nonatomic, strong) UIColor *frameColor;
@property (nonatomic, assign) CGFloat frameWidth;
@property (nonatomic, assign) BOOL showArrow;
@property (nonatomic, assign) BOOL showText;
@property (nonatomic, assign) BOOL visible;
@property (nonatomic, assign) BOOL autoDisplay;
@property (nonatomic, strong) NSArray *visibleMemberOfClasses;
@property (nonatomic, strong) NSArray *visibleKindOfClasses;
@end
v1.9 clean & optimize codes, and draw the frame directly
v1.8 now you can hide the system view and keep the interface clean & tidy
@property (nonatomic, assign) BOOL autoDisplaySystemView;
v1.7 now you can display the specific class while in Autodisplay mode(thx pull request from @mrdaios)
@property (nonatomic, strong) NSArray *visibleMemberOfClasses;
@property (nonatomic, strong) NSArray *visibleKindOfClasses;
[MMPlaceHolderConfig defaultConfig].visibleMemberOfClasses = @[UIImageView.class];
[MMPlaceHolderConfig defaultConfig].visibleKindOfClasses = @[UIButton.class];
v1.6 now you can control the visibility of frame & arrow & text by
@property (nonatomic, strong) UIColor *frameColor;
@property (nonatomic, assign) CGFloat frameWidth;
[MMPlaceHolderConfig defaultConfig].showArrow = YES;
[MMPlaceHolderConfig defaultConfig].showText = YES;
and modified the function hidePlaceHolder
& add new function removePlaceHolder
- (void)removePlaceHolder;
- (void)removePlaceHolderWithAllSubviews;
most important thing is you can automatic display the placeholder with one line code by
[MMPlaceHolderConfig defaultConfig].autoDisplay = YES;
v1.5 fix hidePlaceHolder bug when subviews shows placeholder
v1.4 add a demo project & now you can config the global visability by
[MMPlaceHolderConfig defaultConfig].visible = NO;
v1.3 now you can add placeholders recursively by
- (void)showPlaceHolderWithAllSubviews;
- (void)showPlaceHolderWithAllSubviews:(NSInteger)maxDepth;
- (void)hidePlaceHolderWithAllSubviews;
v1.2 now you can change default configuration by [MMPlaceHolderConfig defaultConfig]
[MMPlaceHolderConfig defaultConfig].lineColor = [UIColor whiteColor];
[MMPlaceHolderConfig defaultConfig].backColor = [UIColor clearColor];
[MMPlaceHolderConfig defaultConfig].arrowSize = 3;
[MMPlaceHolderConfig defaultConfig].lineWidth = 1;
v1.1 now you can get or remove MMPlaceHolder
by
- (void)hidePlaceHolder;
- (MMPlaceHolder *)getPlaceHolder;
v1.0 you can custom or simply use it by
- (void)showPlaceHolder;
- (void)showPlaceHolderWithLineColor:(UIColor*)lineColor;
- (void)showPlaceHolderWithLineColor:(UIColor*)lineColor backColor:(UIColor*)backColor;
- (void)showPlaceHolderWithLineColor:(UIColor*)lineColor backColor:(UIColor*)backColor arrowSize:(CGFloat)arrowSize ;
- (void)showPlaceHolderWithLineColor:(UIColor*)lineColor backColor:(UIColor*)backColor arrowSize:(CGFloat)arrowSize lineWidth:(CGFloat)lineWidth;