ゲームの三目並べは私にとっていい運動になりそうです。
最初に三目並べのグリッドを描きたいと思います。
Interface Builder には、線を描画するためのクラスが組み込まれていません。
したがって、私の質問は次のとおりです。グリッドの線をプログラムで描画するには、どのクラスを使用できますか?
ゲームの三目並べは私にとっていい運動になりそうです。
最初に三目並べのグリッドを描きたいと思います。
Interface Builder には、線を描画するためのクラスが組み込まれていません。
したがって、私の質問は次のとおりです。グリッドの線をプログラムで描画するには、どのクラスを使用できますか?
これをプログラムで行う最も簡単な方法は、UIView のサブクラスを作成し、drawRect()メソッドをオーバーライドすることです。
TTViewという名前のそのようなビューのサブクラスの例を次に示します。
#import "TTView.h"
@implementation TTView
- (void)drawRect:(CGRect)rect {
int xStart = 10, yStart = 10;
int gridSize = 300;
UIBezierPath *topPath = [UIBezierPath bezierPath];
// draw vertical lines
for(int xId=1; xId<=2; xId++) {
int x = xStart + xId * gridSize / 3;
[topPath moveToPoint:CGPointMake(x, yStart)];
[topPath addLineToPoint:CGPointMake(x, yStart+gridSize)];
}
// draw horizontal lines
for(int yId=1; yId<=2; yId++) {
int y = yStart + yId * gridSize / 3;
[topPath moveToPoint:CGPointMake(xStart, y)];
[topPath addLineToPoint:CGPointMake(xStart+gridSize, y)];
}
[[UIColor whiteColor] setStroke];
[topPath stroke];
}
@end
ビューを作成して、次のようにUIViewControllerに追加することを忘れないでください。
TTView *ttv = [[TTView alloc] initWithFrame:self.view.frame];
[self.view addSubview:ttv];
[ttv release];
iOS での描画は、 Core GraphicsまたはQuartz 2Dで行うことができます。
UIView サブクラスを作成し、そのビューの drawRect コールバック デリゲートをインスタンス化して、必要な Core Graphics 描画 (線など) を実行できます。
IB 内で厳密に何かをしたい場合は、背景色を目的の線の色に設定した線のように細い UIView を使用できます。
Sam Soffes は、 SSToolkitを次のように記述しています。
SSToolkit は生活を楽にします。これは、すべてのアプリで使用するさまざまなビュー コントローラー、ビュー、およびカテゴリで構成されています。レポを気軽にフォークして、より良いものにしてください。
彼のクラスの 1 つは、線を描画するためのSSLineViewです。非水平線をどれだけサポートしているかはわかりません。.hと.mは次のとおりですが、SSToolkit の残りの部分に依存している可能性があります。