如何以编程方式绘制一条线?

时间:2011-12-07 14:00:22

标签: ios interface-builder tic-tac-toe

游戏tic tac toe对我来说似乎是一个很好的练习。

我想首先绘制tic tac toe网格 Interface Builder没有用于绘制线的内置类。

因此我的问题是: 我可以用哪个类以编程方式绘制网格线?

4 个答案:

答案 0 :(得分: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];

答案 1 :(得分:2)

在iOS中绘图可以使用Core GraphicsQuartz 2D完成。

答案 2 :(得分:2)

Sam Soffes写道SSToolkit描述为

  

SSToolkit让生活更轻松。它由我在所有应用程序中使用的各种视图控制器,视图和类别组成。随意分叉回购并使其更好。

他的一个班级是SSLineView来画线。我不确定它是如何支持非水平线的。这是.h.m,尽管它可能在SSToolkit的其余部分中具有依赖性。

答案 3 :(得分:2)

您可以创建一个UIView子类,然后实例化该视图的drawRect回调委托以执行所需的任何Core Graphics绘图(行等)。

如果你想在IB内部做一些严格的事情,可以使用一些UIViews作为线条,将背景颜色设置为所需的线条颜色。