2011-04-27 21 views
2

4点(A、B)(C、D)(E、F)(G、H)でポリゴンを描画しようとしています。ポリゴンを描き、背景画像で塗りつぶします

次に、パターン化された画像をポリゴンに適用したいと考えています。

私はinitWithPatternImage,colorWithPatternImage,UIBezierPath,CGContextStrokeLineSegmentsのように見てきましたが、一緒に入れる方法がわかりません。

誰もがどのようにそれらをまとめることができるかについてのアイデアはありますか?

注:私は

答えて

4

がテストされていないオープンGLを使用していないが、それは次のように動作するはずです:

- (void)drawRect:(CGRect)rect 
{ 
    UIColor *color = [UIColor colorWithPatternImage:myPatternImage]; 
    [color set]; 

    UIBezierPath *path = [UIBezierPath bezierPath]; 
    [path moveToPoint:p1]; 
    [path addLineToPoint:p2]; 
    [path addLineToPoint:p3]; 
    [path addLineToPoint:p4]; 
    [path closePath]; // Implicitly does a line between p4 and p1 
    [path fill]; // If you want it filled, or... 
    [path stroke]; // ...if you want to draw the outline. 
} 

あなたはストロークにしたい場合には、あなたは[path setLineWidth:5];を経由して、線幅を設定したい場合がありますまたそのようなものもあります。また、ラインの外観を制御するその他のプロパティUIBezierPathを調べます。

+0

便利な回答です(とうまくいきます)。私が持っている1つの問題は、「背景」が、私が必要とするような透明ではなく、すべて白で満たされていることです。私のために1つのライナーを手に入れましたか?私はself.opaque = NOとself.layer.opaque = NOを試してきました。そして明示的にclearColor(これは白または透明の代わりに背景を黒にしました)を使ってrect全体を明示的に描きました。私に90%をくれてありがとう! –

+1

@MichaelKernahan:それは単に 'self.opaque = NO; self.backgroundColor = [UIColor clearColor]; 'ビューの設定で。 – DarkDust

+0

ハ!あなたは完全に正しいです。私はばかです。 UIViewのサブクラスをxibに追加し、initWithFrameに「透過」なものを配置しました。これは呼び出されません。単にXIBとボイラーで更新されました。ありがとう! –

関連する問題