imageview怎样添加占位图

imageview怎样添加占位图,第1张

如果你是指改变frame的矩形,通过CALayer的Mask,在drawrect内重绘mask层实现imageview的遮罩。 基本的几何图形比较容易实现。思路如此,具体实现方法请自行百度。

给你两个方法,先制造一个灰度背景,然后再生成彩色图片

- (UIImage *)getGrayImage:(UIImage*)image {

CGRect imageRect = CGRectMake(0, 0, image.size.width, image.size.height)

// 创建gray的CGColorSpaceRef

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray()

// 创建CGContextRef

CGContextRef

context = CGBitmapContextCreate(nil, image.size.width,

image.size.height, 8, 0, colorSpace, kCGImageAlphaNone)

CGContextDrawImage(context, imageRect, [image CGImage])

CGImageRef imageRef = CGBitmapContextCreateImage(context)

UIImage *grayImage = [UIImage imageWithCGImage:imageRef]

CGColorSpaceRelease(colorSpace)

CGContextRelease(context)

CFRelease(imageRef)

return grayImage

}

- (UIImage *)getShowImage:(UIImage *)image size:(CGSize)size direction:(int)direction {

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB()

CGContextRef

context = CGBitmapContextCreate(nil, size.width, size.height, 8, 0,

colorSpace, kCGBitmapByteOrder32Little | kCGImageAlphaNoneSkipLast)

CGRect imageRect = CGRectMake(0, 0, image.size.width, image.size.height)

if (direction == 1) {

//上面空白

imageRect = CGRectMake(0, 0, image.size.width, image.size.height)

} else if (direction == 2) {

//左面空白

imageRect = CGRectMake(size.width-image.size.width, 0, image.size.width, image.size.height)

}

CGContextDrawImage(context, imageRect, [image CGImage])

CGImageRef imageRef = CGBitmapContextCreateImage(context)

UIImage *showImage = [UIImage imageWithCGImage:imageRef]

CGColorSpaceRelease(colorSpace)

CGContextRelease(context)

CFRelease(imageRef)

return showImage

}

你看看吧,弄一下,这个功能我原来弄过。圆形可以用imageView实现

imageView.layer.masksToBounds = YES

imageView.layer.cornerRadius = 40.0f// 半径根据imageView大小一半儿设定

#pragma mark -这里是实现了图片遮罩

picImageview=[[UIImageView alloc]init]

int a=3

picImageview.frame=CGRectMake(0, 0, 180*a, 250*a)

UIImage * picImage =[UIImage imageNamed:@"1.png"]

picImageview.image=picImage

UIScrollView *s=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 180, 250)]

s.backgroundColor=[UIColor redColor]

s.contentSize=CGSizeMake(180*a, 250*a)

[s addSubview:picImageview]

//遮罩层的图片

CALayer *maskLayer=[CALayer layer]

maskLayer.frame=CGRectMake(0, 0, 180, 250)

UIImage * maskImage =[UIImage imageNamed:@"abc.png"]

maskLayer.contents=(__bridge id)maskImage.CGImage

UIView *aaaa=[[UIView alloc]initWithFrame:CGRectMake(0, 80, 180, 250)]

aaaa.userInteractionEnabled=YES

aaaa.layer.mask=maskLayer

[aaaa addSubview:s]

[self.view addSubview:aaaa]


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11248459.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存