Изменить альфа-код пользовательского интерфейса программно

#ios #objective-c #xcode #uiimage #splash-screen

#iOS #objective-c #xcode #пользовательский интерфейс #заставка

Вопрос:

Я все еще изучаю xCode / Objective-C, и мне было интересно, как я смогу изменить альфа-версию UIImage. Я попытался написать свой собственный код, но я получаю сообщение об ошибке ‘Свойство ‘alpha’ не найдено для объекта типа UIImage’. Заставка работает, если я закомментирую строки, изменяющие альфа-версию. Мой код приведен ниже.

 //
//  ViewController.m

#import "ViewController.h"

@interface ViewController ()

@property (nonatomic,weak) IBOutlet UIImage *logo;

@end

@implementation ViewController

ADBannerView *_bannerView;
- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.view addSubview:_bannerView];

    [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(showLogo:) userInfo:nil repeats:NO];

}

- (void)showLogo:(NSTimer *) timer{
    [UIView animateWithDuration:2.0 animations:^{
    self.logo.alpha = 1.0;
} completion:^(BOOL finished){

    [UIView animateWithDuration:2.0 animations:^{
        self.logo.alpha = 0.0;
    } completion:^(BOOL finished){
        ViewController *controller  = [self.storyboard instantiateViewControllerWithIdentifier:@"Menu"];
        [self.navigationController pushViewController:controller animated:YES];
    }];

}];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
 

// Спасибо!

Ответ №1:

Вам нужно изменить альфа UIImageView -код, в котором он содержится, для которого нет свойства alpha UIImage .

Ответ №2:

Лучший способ показан @JMarsh

Я нашел метод, который изменяет альфа-значение. вы можете попробовать это.

 imageView.image=[self imageByApplyingAlpha:image]
 

//Изменить альфа изображения

    - (UIImage *)imageByApplyingAlpha:(CGFloat) alpha {
    UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0f);

    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGRect area = CGRectMake(0, 0, self.size.width, self.size.height);

    CGContextScaleCTM(ctx, 1, -1);
    CGContextTranslateCTM(ctx, 0, -area.size.height);

    CGContextSetBlendMode(ctx, kCGBlendModeMultiply);

    CGContextSetAlpha(ctx, alpha);

    CGContextDrawImage(ctx, area, self.CGImage);

    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return newImage;
}
 

Комментарии:

1. Это изменение ориентации.