#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. Это изменение ориентации.