Не удается нарисовать UImage в UIView :: drawRect

Я знаю, что это кажется простой задачей, поэтому я не понимаю, почему я не могу получить изображение для рендеринга.

Когда я настраиваю свой UIView, я делаю следующее:

myUiView.backgroundColor = [UIColor clearColor];
myUiView.opaque = NO;

Я создаю и сохраняю UIImage в функции инициализации моего UIView:

image = [[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"test" ofType:@"png"]] retain];

тогда мой drawRect выглядит так:

- (void) drawRect:(CGRect) rect
{
    [image drawInRect:self.bounds];
}

В конечном итоге я буду управлять этим UIImage через контекст растрового изображения, а затем в drawRect создаю CGImage из контекста и визуализирую его, но пока я просто пытаюсь заставить его визуализировать известное изображение.

Я копался в этом сайте, а также в документации. Я пошел по пути компьютерной графики и попытался нарисовать его с помощью CGContextDrawImage, следуя многочисленным примерам, опубликованным другими людьми, но это тоже не сработало.

Итак, я вернулся к самому простому способу рисования изображения, но он не работает.

Любая помощь будет принята с благодарностью.

Заранее спасибо.


person Joel    schedule 05.06.2010    source источник
comment
Вы проверили, что изображение соответствует вашим ожиданиям (а не nil) и что self.bounds - это то, что вы ожидаете?   -  person wbyoung    schedule 05.06.2010
comment
Черт возьми ... Не могу поверить, что упустил из виду такую ​​простую вещь. Не уверен, почему изображение было нулевым ... по крайней мере, теперь я знаю, в чем проблема. Спасибо!!   -  person Joel    schedule 05.06.2010


Ответы (1)


Прежде всего, убедитесь, что размер и положение self.bounds соответствуют вашим требованиям. Если размер равен {0,0}, ничего отображаться не будет. Проверьте с помощью этой функции:

NSLog(@"%@", NSStringFromCGRect(self.bounds));

Также убедитесь, что изображение не равно нулю:

NSLog(@"%@", image);

person indragie    schedule 05.06.2010