1

CGRectMakeを使用して場所とサイズをuiimageviewに割り当てようとしています。コードは次のとおりです。

     -(IBAction)done11 {

  [self performSelector:@selector(multibuttonvoid) withObject:nil afterDelay:2.0];



      }

  -(void)multibuttonvoid {

 UIImageView *multibtn = [UIImageView alloc];
multibtn.image = [UIImage imageNamed:@"multibuttonpic"];

multibtn = CGRectMake(159, 325, 438, 318);
  [self.view addSubview:multibtn];


      }

したがって、ボタンを押すとわかるように、画像付きのuiimageviewが追加されます。しかし、何らかの理由で、CGRectMake行でこのエラーが発生します:互換性のないタイプのCGRectにuiimageviewを割り当てると、CGRectはuiimageだと思いました

4

3 に答える 3

5

CGRect、UIImage、およびUIImageViewは完全に異なるものです。

CGRectは、点(原点)とサイズ(サイズ)を使用して、任意の座標空間で長方形を定義する単純な構造です。

UIImageは、画像と関連するメタデータです。

UIImageViewは、UIImageを表示することを目的としたUIViewです。

本当に必要なのはframe、UIImageViewのプロパティを設定して、画面上のどこに表示するかを指示することです。

multibtn.frame = CGRectMake(159, 325, 438, 318);

initWithImage:また、ところで、UIImageViewに対して、、などを呼び出して、UIImageViewを初期化することを忘れないでくださいinitWithFrame:。これは通常、割り当てと同時に行われます。

UIImageView *multibtn = [[UIImageView alloc] initWithImage:...];
于 2011-07-13T18:46:50.050 に答える
2

を初期化しませんでしたUIImageView-(id)initWithImage:(UIImage *)image;最初にgivigを呼び出してから、とプロパティnilの両方を設定してみてください。imageframe

UIImageView *multibtn = [[UIImageView alloc] initWithImage:nil];
multibtn.image = [UIImage imageNamed:@"multibuttonpic"];
multibtn.frame = CGRectMake(159, 325, 438, 318);
[self.view addSubview:multibtn];

また

UIImageView *multibtn = [[UIImageView alloc]
                         initWithImage:[UIImage imageNamed:@"multibuttonpic"]];
multibtn.frame = CGRectMake(159, 325, 438, 318);
[self.view addSubview:multibtn];
于 2011-07-13T18:45:45.137 に答える
1

名前が示すように、 ACGRectは画像ではなく長方形を表すため、この場合は長方形である画像ビューのプロパティに割り当てる必要がありますframe

于 2011-07-13T18:45:10.793 に答える