2013-06-19 8 views
5

透明な背景の上に中央の画像があります。私はそれらのすべてに白い枠線を追加したいと思います。もし私が画像の不透明部分の境界のパスを持っていたら、それを描くことができました。これを抽出することは可能ですか?透明なUIImageの周りのUIBezierPath

+0

同じことは、レイヤーにシャドウを追加することで達成できます。 [これを試してください](http://stackoverflow.com/a/5428108/2487322) – Idles

+0

'UIImageView'の画像ですか?もしそうなら、ボーダーを追加するもっと簡単な方法はレイヤーを使うことです。例えば、myImageView.layer.borderColor = [UIColor whiteColor] .CGColor'と 'myImageView.layer.borderWidth = 2.f'あなたのターゲットにQuartzCoreフレームワークを追加し、' #import 'を実行します。 – bobnoble

+2

私は正方形の影や境界線が欲しくないので、それに含まれる画像と同じ形にしたい。 – lavoy

答えて

-2

あなたはそれを行うことができるいくつかの方法があります。initあなたのカスタムサブビューの方法でこれをすべて行います。最初に境界線の色を設定します。ここではあなたがそれを設定することができる方法である。

borderColor = [UIColor greenColor]; 

borderColor=[[UIColor alloc]initWithPatternImage:[UIImage imageNamed:@"anyImageName.jpg"]]; //[UIColor colorWithPatternImage:]; 

UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:_yourImageView.frame cornerRadius:1.0]; 
[path setLineWidth:5.0];//set width as per your requirement. 

そして最後としてUIBezierPathを割り当てるには、あなたのdrawRectメソッドをオーバーライド

- (void)drawRect:(CGRect)rect 
{ 
    [borderColor setStroke]; 
    [path strokeWithBlendMode:kCGBlendModeNormal alpha:1.0];//alpha handles the transparency 
} 

としてそれは動作するはずです。ハッピーコーディング!

関連する問題