2011-12-21 20 views
1

私はmethod.thisのdrawRectでコーナーグラブ指標を描画する方法がわからないですmycode:ios5のようなコーナーグラブインジケーターをUIViewに描画するにはどうすればいいですか?

- (void)drawRect:(CGRect)rect{ 
CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor); 
CGContextSetLineWidth(context, 0.8f); 

CGFloat colX1 = CGRectGetMaxX(rect)/3.0; 
CGFloat colX2 = 2*colX1; 
CGFloat rowY1 = CGRectGetMaxY(rect)/3.0; 
CGFloat rowY2 = 2*rowY1; 

CGContextBeginPath(context); 
CGContextMoveToPoint(context, colX1, CGRectGetMinY(rect)); 
CGContextAddLineToPoint(context, colX1, CGRectGetMaxY(rect)); 

CGContextMoveToPoint(context, colX2, CGRectGetMinY(rect)); 
CGContextAddLineToPoint(context, colX2, CGRectGetMaxY(rect)); 

CGContextMoveToPoint(context, CGRectGetMinX(rect),rowY1); 
CGContextAddLineToPoint(context, CGRectGetMaxX(rect),rowY1); 

CGContextMoveToPoint(context, CGRectGetMinX(rect),rowY2); 
CGContextAddLineToPoint(context,CGRectGetMaxX(rect),rowY2); 

CGContextStrokePath(context);} 

とinitメソッドで:

CATiledLayer *tiledLayer = (CATiledLayer *)[self layer]; 
    tiledLayer.levelsOfDetail = 4; 
    self.layer.borderColor = [UIColor whiteColor].CGColor; 
    self.layer.borderWidth = 1.5; 

私のスクリーンショットです: myCropView

私はこのように私のビューを描く方法を知りたいです: enter image description here

私は本当にコーナーグラブインジケーターを描画するコードを知りたい。

ありがとうございます!

答えて

3

コーナーは、描画しているボックスの外側にちょうど8本の余分な線が描かれています。ボックスを少し入れて、フレームの角に描きます。その場合、borderWidthを使用するのではなく、外側のボックスを描く必要があります。しかし、これはちょうどCGContextMoveToPoint/CGContextAddLineToPointコールです。あなたはすでに必要なすべてのツールを理解しているようです。あなたはあなたが投稿した画像を注意深く見ている場合

EDITところで、あなたは国境が実際に両方の黒と白の画素で構成されていることに注意しましょう。彼らは、幅が2の白い枠線を描いてから戻ってきて、4本の黒い線を端に沿って描きました。これはやや簡単に描くことができます。

0

あなたはこの種のものを1つのトリックで描くことができます - 第2のスクリーンショットと同じような画像をデザインします&この画像で1つのレイヤーを作成して貼り付けます。

これは私が考えるように単純です。

関連する問題