CGRectMake для UIImageView? - PullRequest
       36

CGRectMake для UIImageView?

1 голос
/ 13 июля 2011

Я пытаюсь использовать 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: назначая uiimageview несовместимому типу CGRect, я думал, что CGRect был uiimage

Ответы [ 3 ]

5 голосов
/ 13 июля 2011

CGRect, UIImage и UIImageView - это совершенно разные вещи.

CGRect - это простая структура, определяющая прямоугольник в некотором произвольном координатном пространстве, используя точку (начало координат) и размер (размер).

UIImage - это изображение и связанные с ним метаданные.

UIImageView - это UIView, который предназначен для отображения UIImage.

Похоже, что вы действительно хотите установить свойство frame вашего UIImageView, чтобы указать ему, где на экране должно отображаться:

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

Кроме того, кстати, не забудьте инициализировать ваш UIImageView, вызвав либо initWithImage:, initWithFrame:, либо что-то подобное. Обычно это делается одновременно с распределением:

UIImageView *multibtn = [[UIImageView alloc] initWithImage:...];
2 голосов
/ 13 июля 2011

Вы не инициализировали UIImageView. Попробуйте сначала вызвать -(id)initWithImage:(UIImage *)image; givig nil, а затем установить свойства image и frame.

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];
1 голос
/ 13 июля 2011

A CGRect, как следует из названия, представляет прямоугольник, а не изображение, поэтому вы должны назначить его свойству вида изображения, которое является прямоугольником, в данном случае frame.

...