私は影の効果を持つレイヤーを作成しています。私のビューのレイヤーにサブレイヤとして追加する代わりに、それを描きたいと思います。しかし、影の効果で描くことができないという問題があります。問題は、コンテキストサイズがレイヤーサイズに基づいていることです。しかし、どのように文脈のためのrectを設定するのですか?上記のコードではCALayerのコンテキストに数ピクセルを加えたコンテキストを取得する方法は?
CALayer *layer = [CALayer layer];
layer.frame = ...;
layer.backgroundColor = [UIColor redColor].CGColor;
layer.cornerRadius = 2.0;
layer.masksToBounds = NO;
layer.shadowColor = [[UIColor whiteColor] CGColor];
layer.shadowOffset = CGSizeMake(0, 1);
layer.shadowRadius = 0.5;
layer.shadowOpacity = 0.2;
[self.layer addSublayer:layer];
UIGraphicsBeginImageContext(layer.bounds.size);
[layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[viewImage drawAtPoint:CGPointMake(0, 0)];
[layer removeFromSuperlayer];
、私は何を取得していますことは箱ですが、(すべての4つの側面に)影とパディングのいくつかの余分なピクセルなし。私がImageContextのサイズを大きくすると、高さと幅が増えますが、まだx = 0、y = 0から始まり、x = -5、y = -5などから始めることができますそれ。
おかげでたくさん!
あなたはおそらくそれのためのあなたの理由を持っているが、なぜあなただけの最初の画像に変換せず、直接、レイヤーを使用していませんか?それはあなたの問題を解決するでしょう。 – fishinear
ええ、私はただ私のビューに直接フラット画像を描画することを好むでしょう。 – runmad
@runmadレイヤを使用するのではなく、画像を描画する理由に興味がありますか? – ocodo