UIViewの枠外に矢印を表示させる
UIViewに図形を描画する方法はいろんな方がまとめて下さり、安易に実装することができるけれども、 枠外に描画するサンプルが見当たらなかったので作ってみた。
こんなかんじ
やっていることは鼻くそほじるぐらい簡単で、 単にCALayerを作ってPathで矢印を描画し、矢印を表示させたいViewにaddしているだけ。
// インジケータをドローイング - (void)drawIndicator:(CGContextRef)ctx { CGContextBeginPath(ctx); if (self.direction == IndicatorDirectionRight) { CGContextMoveToPoint(ctx, 0, 0); CGContextAddLineToPoint(ctx, 1, 0.5); CGContextAddLineToPoint(ctx, 0.0, 1.0); CGContextAddLineToPoint(ctx, 0.0, 0.0); } else { CGContextMoveToPoint(ctx, 1.0, 0); CGContextAddLineToPoint(ctx, 0, 0.5); CGContextAddLineToPoint(ctx, 1.0, 1.0); CGContextAddLineToPoint(ctx, 1.0, 0.0); } CGContextClosePath(ctx); CGContextSetFillColorWithColor(ctx, self.indicatorColor.CGColor); CGContextFillPath(ctx); } - (void)drawInContext:(CGContextRef)ctx { // 座標変換 CGContextTranslateCTM(ctx, 0, 0); CGContextScaleCTM(ctx, self.bounds.size.width, self.bounds.size.height); [self drawIndicator:ctx]; }
今後使うことあるかな・・・