私はiPhoneプログラミングの初心者であり、QuartzとUIKitを使用した学習を目的として、電話スクリーンに線を引きたいと思っています。
描画を開始するにはどうすればよいですか?
最初のステップは、描画するスペースを作成するために、UIViewのサブクラスを定義することです。
新しいアプリケーションから始める場合、最も簡単な方法は「ウィンドウベースのアプリケーション」テンプレートから始めることです。
次に、[新規ファイル]に移動し、[サブクラス]を[UIView]に設定して[Objective-Cクラス]を作成し、MyView.mなどの名前を付けます。
「リソース」グループを開き、「MainWindow.xib」をダブルクリックして、Interface Builderで開きます。ここから、「ウィンドウ」という名前のウィンドウが表示されます。 Cmd + Shift + Lを押してライブラリを表示し、「表示」コンポーネントをウィンドウにドラッグして、すべてを表示できるように配置します。新しいビューを選択した状態で、Cmd + 4を押してIDインスペクターを表示し、[クラスID]の下でドロップダウンをクリックして、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 Documentation。最終的に使用するコアグラフィックス関数は、「CGContext」という用語で始まります。
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];
}