写一个方法弄默认图-Mark一下
.h
@interfaceLZPlaceholderView :UIView
//默认是图片 imageSize 必传 logo不传默认logo title 非必须
-(instancetype)initPlaceholderWithLogo:(NSString*)logo imageSize:(CGSize)imageSize logoSize:(CGSize)logoSize title:(NSString*)title titleFont:(float)font;
.m
//屏幕宽高
#define kScreenW [[UIScreen mainScreen] bounds].size.width
#define kScreenH [[UIScreen mainScreen] bounds].size.height
#import "LZPlaceholderView.h"
@implementationLZPlaceholderView
-(instancetype)initPlaceholderWithLogo:(NSString*)logo imageSize:(CGSize)imageSize logoSize:(CGSize)logoSize title:(NSString*)title titleFont:(float)font {
CGRectvFrame =CGRectMake((kScreenW-imageSize.width)/2,0, imageSize.width, imageSize.height);
if(self==[superinitWithFrame:vFrame]) {
[selfinitWithLogo:logoimageSize:imageSizelogoSize:logoSizetitle:titletitleFont:font];
}
return self;
}
-(void)initWithLogo:(NSString*)logo imageSize:(CGSize)imageSize logoSize:(CGSize)logoSize title:(NSString*)title titleFont:(float)font{
if(imageSize.height>0&& imageSize.width>0) {
floattempX = (imageSize.width- logoSize.width)/2;
floattempY = (imageSize.height- logoSize.height)/2- (title.length>0?25:0);
// logo
UIImageView*logoImage = [[UIImageViewalloc]initWithFrame:CGRectMake(tempX, tempY, logoSize.width, logoSize.height)];
if(logo.length>0) {
logoImage.image= [UIImageimageNamed:logo];
}else{
logoImage.image= [UIImageimageNamed:@"default"];
}
[selfaddSubview:logoImage];
// 默认字
if(title.length>0) {
UILabel*titleLab = [[UILabelalloc]initWithFrame:CGRectMake(0,CGRectGetMaxY(logoImage.frame)+20, imageSize.width,25)];
titleLab.textAlignment=NSTextAlignmentCenter;
titleLab.textColor= [UIColorlightGrayColor];
titleLab.text= title;
if(font) {
titleLab.font= [UIFontsystemFontOfSize:font];
}else{
titleLab.font= [UIFontsystemFontOfSize:16];
}
[selfaddSubview:titleLab];
}
}
}
@end
//例子
LZPlaceholderView*lzview = [[LZPlaceholderViewalloc]initPlaceholderWithLogo:@"sj"imageSize:CGSizeMake(kScreenW,kImage_H)logoSize:CGSizeMake(105,135)title:@"我是默认图"titleFont:15]; lzview.backgroundColor = [UIColor whiteColor];
[self.viewaddSubview:lzview];
// UIView 转Image
//使用该方法不会模糊,根据屏幕密度计算
- (UIImage*)convertViewToImage:(UIView*)view {
UIImage*imageRet = [[UIImagealloc]init];
UIGraphicsBeginImageContextWithOptions(view.frame.size, YES, [UIScreen mainScreen].scale);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
imageRet =UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
returnimageRet;
}