0

プログラムで画像をインスタンス化しようとしています。最終的な目的は、画面のさまざまなポイントで水平方向に一連のEmpty.pngを表示することです。どうすればいいのかわかりませんが、まずは1枚の画像を画面に表示させようとしています。これは.mファイルの私のコードです。

- (void)drawAtPoint:(CGPoint)point {
point = CGPointMake(100.0,100.0);
UIImageView *img = [[UIImageView alloc] init];
img.image = [UIImage imageNamed:@"Empty.png"];
[self.view addSubview:img];

よろしくお願いします。

4

3 に答える 3

3

あなたは完全に間違ったアプローチを取っています。

初心者として、コード ( など) を描画drawAtPoint:drawInRect:ていることに気付いた場合は、ほぼ確実に間違った場所にいます。

特に画像の読み込みや表示などは、iOS がほぼすべての作業を行ってくれるので、自分で何も描く必要はありません。

これを間違った方法で受け取ってはいけませんが、自分自身に大きな恩恵をもたらし、このテーマに関する優れた入門書を手に入れてください. Big Nerd Ranch Guide シリーズの書籍は優れており、非常に価値があります。

編集:

本当に本を手に入れたくないのなら (あなた自身のために、本を手に入れてください - 私はそうしましたし、私はとてもうれしく思います)、ここでうまくいくはずの簡単な方法があります.

を作成したのは正しい考えでしたが、UIImageView使い方が間違っています。

UIViewControllerアプリのどこかにある可能性が非常に高いです。メソッドを検索 (または作成) し、- (void)viewDidLoadそこから画像を表示します。

- (void)viewDidLoad
{
    UIImage *myImage = [UIImage imageNamed:@"Empty"]; //you can leave out PNG.
    UIImageView *myFirstImageView = [[UIImageView alloc] initWithImage:myImage]; //this automatically gives the UIImageView the correct height and width
    [self.view addSubview:myFirstImageView]; //That's all. UIKit will handle displaying the imageView automatically.
}

これにより、画面の左上隅に画像が表示されます。

の後のどこかに次の行を挿入することで、簡単に移動できますUIImageView *myFirst...

myFirstImageView.center = CGPointMake(210.0, 345.0);

Big Nerd Ranch の本は iOS 開発について学ぶのに最適で、読むのも楽しいと言いましたか?

また、公式ドキュメントは非常に優れています (ただし、楽しくも読みやすくもありませんし、説明もあまりありません)。

于 2013-03-07T18:27:14.003 に答える
0

申し訳ありませんが、私の以前の回答は間違っていました。drawInRect をしているとは知りませんでした。

画像ビューを使用しないでください。ここでは、コア グラフィックスを使用する必要があります。UIImageView オブジェクトは役に立つかもしれませんが、その一部にすぎません。

[img drawAtPoint:point]; 

トリックを行う必要があります。

于 2013-03-07T18:30:23.913 に答える
0

フレームを設定する必要があります。

- (void)placeImageViewAtPoint:(CGPoint)point 
{
    UIImageView *img = [[UIImageView alloc] init];
    img.image = [UIImage imageNamed:@"Empty.png"];
    img.frame.origin = point;
    [self.view addSubview:img];  
}

私はこれをテストしませんでしたが、それがエラーをスローする場合は、次のものが必要です。

- (void)placeImageViewAtPoint:(CGPoint)point 
{
    UIImageView *img = [[UIImageView alloc] init];
    img.image = [UIImage imageNamed:@"Empty.png"];
    CGRect frame = img.frame;
    frame.origin = point;
    img.frame = frame;
    [self.view addSubview:img];  
}

おそらく、viewDidAppear または同様のメソッドからこのメソッドを呼び出す必要があります。

-(void)viewDidAppear
{
    CGPoint point = point = CGPointMake(100.0,100.0);
    [self placeImageViewAtPoint:point];
}
于 2013-03-07T18:34:31.580 に答える