1

おそらく NSMakeRect を使用して NSRect を作成し、ウィンドウやその背後にあるビューなしで画面に表示される単純な正方形を作成し、すべてコードで作成できるかどうか疑問に思っていました。

これは私が例として持っているものです

-(void)drawRect
{
   NSRect myNewRect
   myNewRect = NSMakeRect(100, 100, 50, 50);
}

これは単純な開始点ですが、それ自体は画面に表示されません。何を追加する必要がありますか?

ありがとう

4

2 に答える 2

2

Mac OS X でのすべての描画操作には、ある種のウィンドウが必要です。いいえ、ウィンドウなしで四角形を描くことはできません。ただし、描画する境界線のない透明なウィンドウを作成できます。

于 2012-02-18T22:22:30.643 に答える
1

まず第一に、「ウィンドウまたはその背後にあるビューなしで画面に表示する」ことはできません。

常にレイヤーで裏打ちされたオブジェクト(UIViewなど)を描画します。

そして、UIViewsは、それらを表示するために、最終的には何らかのUIWindow階層の一部である必要があります。

そのため、「ウィンドウなしでメイン画面に[描画]する」ことはできません。それはコアグラフィックスが機能する方法ではありません。

しかし、私はこれがあなたがやろうとしていることだと信じています:

-(void)drawRect
{
   CGRect myNewRect = CGRectMake(100, 100, 50, 50);

   CGContextRef ctx = UIGraphicsGetCurrentContext();
   CGContextSetFillColorWithColor(ctx, [[UIColor redColor] CGColor]);
   CGContextFillRect(ctx, myNewRect);
}

上記のメソッドのUIView実装で長方形を描画します。drawRect

于 2012-02-18T22:21:18.133 に答える