亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何屏蔽UIImageView?

如何屏蔽UIImageView?

iOS
jeck貓 2019-08-09 16:04:25
如何屏蔽UIImageView?我試圖用這樣的東西掩蓋圖像:你能幫幫我嗎?我正在使用此代碼:- (void) viewDidLoad {     UIImage *OrigImage = [UIImage imageNamed:@"dogs.png"];     UIImage *mask = [UIImage imageNamed:@"mask.png"];     UIImage *maskedImage = [self maskImage:OrigImage withMask:mask];     myUIIMage.image = maskedImage;}
查看完整描述

3 回答

?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

有一種更簡單的方法。

#import <QuartzCore/QuartzCore.h>// remember to include Framework as wellCALayer *mask = [CALayer layer];mask.contents = (id)[[UIImage imageNamed:@"mask.png"] CGImage];mask.frame = CGRectMake(0, 0, <img_width>, <img_height>);yourImageView.layer.mask = mask;yourImageView.layer.masksToBounds = YES;

對于Swift 4和plus,請遵循以下代碼

let mask = CALayer()mask.contents =  [ UIImage(named: "right_challenge_bg")?.cgImage] as Anymask.frame = CGRect(x: 0, y: 0, width: leftBGImage.frame.size.width, height: leftBGImage.frame.size.height)leftBGImage.layer.mask = mask
leftBGImage.layer.masksToBounds = true


查看完整回答
反對 回復 2019-08-09
?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

本教程使用此方法有兩個參數:image并且maskImage,您必須在調用方法時進行設置。示例調用可能看起來像這樣,假設方法在同一個類中并且圖片在您的包中:

注意 - 令人驚訝的是,圖像甚至不必具有相同的大小。

...UIImage *image = [UIImage imageNamed:@"dogs.png"];UIImage *mask = [UIImage imageNamed:@"mask.png"];// result of the masking methodUIImage *maskedImage = [self maskImage:image withMask:mask];...- (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage {

    CGImageRef maskRef = maskImage.CGImage; 

    CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
        CGImageGetHeight(maskRef),
        CGImageGetBitsPerComponent(maskRef),
        CGImageGetBitsPerPixel(maskRef),
        CGImageGetBytesPerRow(maskRef),
        CGImageGetDataProvider(maskRef), NULL, false);

    CGImageRef maskedImageRef = CGImageCreateWithMask([image CGImage], mask);
    UIImage *maskedImage = [UIImage imageWithCGImage:maskedImageRef];

    CGImageRelease(mask);
    CGImageRelease(maskedImageRef);

    // returns new image with mask applied
    return maskedImage;}

在您提供代碼后,我添加了一些數字作為注釋,以供參考。你還有兩個選擇。整個事情是一種方法,你在某處調用。您不需要在其中創建圖像:這會將方法的可重用性降低到零。

讓代碼正常工作 將方法頭(1.)更改為

- (UIImage *)maskImageMyImages {

然后,在改變變量名2

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

該方法將返回您的蒙版圖像,因此您必須在某個地方調用此方法。你能告訴我們你調用方法的代碼嗎?


查看完整回答
反對 回復 2019-08-09
  • 3 回答
  • 0 關注
  • 508 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號