如何在iPhone上画线?

时间:2009-05-13 06:20:20

标签: iphone cocoa-touch quartz-graphics

我是iPhone编程的初学者,我想在手机屏幕上划一行,以便使用Quartz和UIKit进行学习。

如何开始绘画?

2 个答案:

答案 0 :(得分:147)

第一步是定义UIView的子类,以创建一个可以绘制的空间。

如果你是从一个新的应用程序开始,最简单的方法是从“基于窗口的应用程序”模板开始。

然后转到New File并创建一个“Objective-C Class”,将“Subclass of”设置为“UIView”,并为其命名,比如说MyView.m。

现在打开“Resources”组并双击“MainWindow.xib”在Interface Builder中打开它。从这里你应该看到一个名为“Window”的窗口。点击Cmd + Shift + L调出库,然后将“视图”组件拖到窗口上,并将其定位,以便您可以看到所有这些。选择新的View后,点击Cmd + 4打开Identity Inspector,在“Class Identity”下,点击下拉菜单,选择MyView。

接下来,您需要在MyView.m中实现drawRect:方法,这里是一些绘制线条的示例代码:

- (void)drawRect:(CGRect)rect {
    CGContextRef c = UIGraphicsGetCurrentContext();

    CGFloat red[4] = {1.0f, 0.0f, 0.0f, 1.0f};
    CGContextSetStrokeColor(c, red);
    CGContextBeginPath(c);
    CGContextMoveToPoint(c, 5.0f, 5.0f);
    CGContextAddLineToPoint(c, 50.0f, 50.0f);
    CGContextStrokePath(c);
}

保存所有内容并单击“构建并运行”,您现在应该在iPhone上看到一条红色短线。

有关Core Graphics的更多信息,请查看Apple文档。我还发现在Xcode文档查看器中搜索以CGContext开头的函数是有帮助的,并浏览这些函数 - 您最终使用的大多数核心图形函数将以术语“CGContext”开头。

答案 1 :(得分:4)

您还可以使用UIBezierPath绘制一条线。以下将绘制垂直居中的水平线:

- (void)drawRect:(CGRect)rect {
    CGFloat rectHeight = CGRectGetHeight(rect);
    CGFloat rectWidth = CGRectGetWidth(rect);

    UIBezierPath *line = [UIBezierPath bezierPath];
    [line moveToPoint:CGPointMake(0, rectHeight / 2)];
    [line addLineToPoint:CGPointMake(rectWidth, rectHeight / 2)];

    [[UIColor lightGrayColor] setStroke];
    [line stroke];
}