我是iPhone编程的初学者,我想在手机屏幕上划一行,以便使用Quartz和UIKit进行学习。
如何开始绘画?
答案 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];
}