游戏tic tac toe对我来说似乎是一个很好的练习。
我想首先绘制tic tac toe网格 Interface Builder没有用于绘制线的内置类。
因此我的问题是: 我可以用哪个类以编程方式绘制网格线?
答案 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 Graphics或Quartz 2D完成。
答案 2 :(得分:2)
SSToolkit让生活更轻松。它由我在所有应用程序中使用的各种视图控制器,视图和类别组成。随意分叉回购并使其更好。
他的一个班级是SSLineView来画线。我不确定它是如何支持非水平线的。这是.h和.m,尽管它可能在SSToolkit的其余部分中具有依赖性。
答案 3 :(得分:2)
您可以创建一个UIView子类,然后实例化该视图的drawRect回调委托以执行所需的任何Core Graphics绘图(行等)。
如果你想在IB内部做一些严格的事情,可以使用一些UIViews作为线条,将背景颜色设置为所需的线条颜色。