一个创建占位符或显示UIView大小的快速解决方案
推荐通过CocoaPods进行安装。只需添加
pod 'MMPlaceHolder'
并运行pod install
。这将安装MMPlaceHolder的最新版本。
如果您想使用MMPlaceHolder的最新代码,请使用
pod 'MMPlaceHolder', :head
简单地说,你只需要一行代码。
[yourView showPlaceHolder];
或者您可以自定义。
@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
并且您可以使用全局配置
@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.8现在您可以在隐藏系统视图的同时保持界面整洁
@property (nonatomic, assign) BOOL autoDisplaySystemView;
v1.7现在您可以在自动显示模式下显示特定的类(感谢提交来自@mrdaios)
@property (nonatomic, strong) NSArray *visibleMemberOfClasses;
@property (nonatomic, strong) NSArray *visibleKindOfClasses;
[MMPlaceHolderConfig defaultConfig].visibleMemberOfClasses = @[UIImageView.class];
[MMPlaceHolderConfig defaultConfig].visibleKindOfClasses = @[UIButton.class];
v1.6现在您可以通过以下方式控制框架、箭头和文本的可见性
@property (nonatomic, strong) UIColor *frameColor;
@property (nonatomic, assign) CGFloat frameWidth;
[MMPlaceHolderConfig defaultConfig].showArrow = YES;
[MMPlaceHolderConfig defaultConfig].showText = YES;
并修改了函数hidePlaceHolder
并添加了新函数removePlaceHolder
- (void)removePlaceHolder;
- (void)removePlaceHolderWithAllSubviews;
最重要的是,您可以通过一行代码自动显示占位符
[MMPlaceHolderConfig defaultConfig].autoDisplay = YES;
v1.5修复了子视图显示占位符时的hidePlaceHolderBUG
v1.4添加了演示项目,并可以全局配置可见性
[MMPlaceHolderConfig defaultConfig].visible = NO;
v1.3现在您可以通过以下方式递归地将占位符添加到视图中
- (void)showPlaceHolderWithAllSubviews;
- (void)showPlaceHolderWithAllSubviews:(NSInteger)maxDepth;
- (void)hidePlaceHolderWithAllSubviews;
v1.2现在您可以通过以下方式更改默认配置[MMPlaceHolderConfig defaultConfig]
[MMPlaceHolderConfig defaultConfig].lineColor = [UIColor whiteColor];
[MMPlaceHolderConfig defaultConfig].backColor = [UIColor clearColor];
[MMPlaceHolderConfig defaultConfig].arrowSize = 3;
[MMPlaceHolderConfig defaultConfig].lineWidth = 1;
v1.1现在您可以通过以下方式获取或移除MMPlaceHolder
- (void)hidePlaceHolder;
- (MMPlaceHolder *)getPlaceHolder;
v1.0您可以通过自定义或简单使用它
- (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;