UIImageView があり、その上に黒いオーバーレイを追加したいと考えていました。drawRectをオーバーライドせずにこれを行う最良の方法は何ですか? その上にCALayerを追加することを考えていました。しかし、アルファが .3 の黒い CALayer を取得する方法がわかりません。
質問する
30045 次
6 に答える
53
このようなもの?
UIView *overlay = [[UIView alloc] initWithFrame:CGRectMake(0, 0, myImageView.frame.size.width, myImageView.frame.size.height / 2)];
[overlay setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0.3]];
[myImageView addSubview:overlay];
于 2012-06-27T00:21:58.497 に答える
17
ミック・マッカラムに感謝
Swift 3バージョン
let overlay: UIView = UIView(frame: CGRect(x: 0, y: 0, width: cell.imageView.frame.size.width, height: cell.imageView.frame.size.height))
overlay.backgroundColor = UIColor(red: 0/255, green: 0/255, blue: 0/255, alpha: 0.1)
cell.imageView.addSubview(overlay)
Swift 2.2に使用しました
let overlay: UIView = UIView(frame: CGRectMake(0, 0, cell.imageView.frame.size.width, cell.imageView.frame.size.height))
overlay.backgroundColor = UIColor(red: 0/255, green: 0/255, blue: 0/255, alpha: 0.1)
cell.imageView.addSubview(overlay)
于 2016-05-10T10:45:02.803 に答える
8
MDTの答えは正しいです。これは、CAGradientLayer
beside ofを使用するもう 1 つの方法ですUIView
。より多くのグラフィックオプションを使用すると、必要なものが作成されると思います。
最初に追加する必要があります
#import <QuartzCore/QuartzCore.h>
このオーバーレイを追加して使用ViewController.m
したい任意の場所にUIImage
:
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.frame = myImageView.layer.bounds;
gradientLayer.colors = [NSArray arrayWithObjects:
(id)[UIColor colorWithWhite:0.9f alpha:0.7f].CGColor,
(id)[UIColor colorWithWhite:0.0f alpha:0.3f].CGColor,
nil];
gradientLayer.locations = [NSArray arrayWithObjects:
[NSNumber numberWithFloat:0.0f],
[NSNumber numberWithFloat:0.5f],
nil];
//If you want to have a border for this layer also
gradientLayer.borderColor = [UIColor colorWithWhite:1.0f alpha:1.0f].CGColor;
gradientLayer.borderWidth = 1;
[myImageView.layer addSublayer:gradientLayer];
これがあなたがそれを作るのに役立つことを願っています
于 2012-06-27T06:16:49.073 に答える
5
これは、CALayer プロパティを使用することを除いて、MDT の回答に似ています。
UIView *blackOverlay = [[UIView alloc] initWithFrame: imageView.frame];
blackOverlay.layer.backgroundColor = [[UIColor blackColor] CGColor];
blackOverlay.layer.opacity = 0.3f;
[self.view addSubview: blackOverlay];
于 2012-06-27T01:02:08.643 に答える
4
UIView
画像ビューにサブビューとして黒の backgroundColor と 0.3 alpha を追加することを考えましたか?
于 2012-06-27T00:08:36.707 に答える