drawRect не вызывается

Мне нужно нарисовать изображение в прямоугольнике, поэтому для этого я использую метод drawRect. Я заметил, что он не вызывается. На выходе я вижу только пустой экран. Я использую MAC OS, и мне нужно протестировать приложение в ОС Iphone. 3+. Пожалуйста, кто-нибудь может решить мою проблему. Вот мой код:

    -(IBAction)calling
  {
 int a=0;
 a=a+1;
 [self.view setNeedsDisplay];  //InRect:CGRectMake(78, 43, 200, 138)];

  }

 - (void)drawRect:(CGRect)rect {
    UIImage *myImage = [UIImage imageNamed:@"btbp.jpg"];

    CGRect imageRect = CGRectMake(10, 10, 300, 400);

    [myImage drawInRect:imageRect];
[self.view setNeedsDisplay];

    [myImage release];
 }

не знаю, где я ошибся :(


person iphoneStruggler    schedule 04.11.2010    source источник


Ответы (1)


  1. Является ли ваш метод drawRect реальным представлением? Или это на контроллере представления, на что похоже? drawRect — это то, что вы пишете/переопределяете в самом представлении.

  2. Вы не должны вызывать release для объекта myImage, так как вы не alloc делали это сами.

Если это не имеет на 100 % смысла, я бы порекомендовал вам начать с документации iOS Cocoa Views, чтобы понять, как все это сочетается друг с другом.

person Ben Zotto    schedule 04.11.2010
comment
на самом деле мое приложение основано на представлении. Я реализую его в подклассе uiviewcontroller. Я пишу drawRect. Да, я рисую его в реальном представлении. Вы предложили какой-то документ, где я могу его найти - person iphoneStruggler; 04.11.2010
comment
Метод -drawRect: должен быть реализован в подклассе UIView, а не в вашем контроллере представления. Также обратите внимание, что вызов setNeedsDisplay из вашего метода drawRect — действительно очень плохая идея. - person bbum; 04.11.2010
comment
@iphoneStruggler: я понимаю, что вы пытаетесь сделать, но вам следует изучить некоторые онлайн-руководства по основным приложениям Cocoa или взять одну из вводных книг для iPhone. Здесь есть некоторые базовые вещи, которые могут выйти за рамки Stack Overflow, чтобы ответить на все. Вот несколько документов о пользовательских представлениях: developer.apple.com/library/ios/#documentation/WindowsViews/ - person Ben Zotto; 04.11.2010