IOS-简单的默认图-UIView转UIImage

写一个方法弄默认图-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;

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容