1

ゲームの三目並べは私にとっていい運動になりそうです。

最初に三目並べのグリッドを描きたいと思います。
Interface Builder には、線を描画するためのクラスが組み込まれていません。

したがって、私の質問は次のとおりです。グリッドの線をプログラムで描画するには、どのクラスを使用できますか?

4

4 に答える 4

4

これをプログラムで行う最も簡単な方法は、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];
于 2011-12-07T14:50:26.637 に答える
2

iOS での描画は、 Core GraphicsまたはQuartz 2Dで行うことができます。

于 2011-12-07T14:06:30.850 に答える
2

UIView サブクラスを作成し、そのビューの drawRect コールバック デリゲートをインスタンス化して、必要な Core Graphics 描画 (線など) を実行できます。

IB 内で厳密に何かをしたい場合は、背景色を目的の線の色に設定した線のように細い UIView を使用できます。

于 2011-12-07T14:49:36.953 に答える
2

Sam Soffes は、 SSToolkitを次のように記述しています。

SSToolkit は生活を楽にします。これは、すべてのアプリで使用するさまざまなビュー コントローラー、ビュー、およびカテゴリで構成されています。レポを気軽にフォークして、より良いものにしてください。

彼のクラスの 1 つは、線を描画するためのSSLineViewです。非水平線をどれだけサポートしているかはわかりません。.h.mは次のとおりですが、SSToolkit の残りの部分に依存している可能性があります。

于 2011-12-07T14:21:16.460 に答える