0

ImageView オブジェクトを作成したいのですが、 contentRect プロパティを使用して作成すると、結果に影ができてしまいます。

このコードを見てください:

CALayer *blueLayer = [CALayer layer];
blueLayer.frame = CGRectMake(50.0f, 50.0f, 100.0f, 200.0f);
blueLayer.backgroundColor = [UIColor blueColor].CGColor;
UIImage *image = [UIImage imageNamed:@"vclrs_me_wodeshoucang"] ;
CGImageRef imageRef = image.CGImage ;
blueLayer.contents = (__bridge id _Nullable)imageRef ;
blueLayer.contentsGravity =  kCAGravityCenter ;
blueLayer.contentsRect = CGRectMake(0, 0, 2, 2) ;
blueLayer.contentsScale = image.scale ;
[self.layerView.layer addSublayer:blueLayer];

そして、結果(写真)を読んでください: ここに画像の説明を入力

4

2 に答える 2

0

self.layerView.clipsToBounds = YES を設定してみてください

于 2016-12-08T09:22:16.777 に答える
0

https://developer.apple.com/reference/quartzcore/calayer/1410866-contentsrect?language=objc

上記のドキュメントによると

デフォルトは単位長方形 (0.0、0.0、1.0、1.0) です。

単位矩形の外側のピクセルが要求された場合、コンテンツ イメージのエッジ ピクセルが外側に拡張されます。

空の四角形が指定された場合、結果は未定義です。

したがって、それによると、このような出力が得られます

画像

于 2016-12-08T08:53:33.873 に答える