annotationView переопределить drawRect, изображение с альфа - PullRequest
3 голосов
/ 10 февраля 2012

Здравствуйте, я хочу переопределить drawrect в моем настраиваемом представлении annotationView, поэтому, когда я пишу

[[_mapView viewForAnnotation:annotation] setNeedsDisplay]; 

, мое представление аннотации будет перерисовано, и мне не придется удалять аннотацию и добавлять ее снова.

вот мой drawRect

- (void)drawRect:(CGRect)rect {
    UIImage* theImage = nil;
    if( _pinType == T_UNKNOWN ) theImage = [UIImage imageNamed:@"imgU.png"];
    else theImage = [UIImage imageNamed:@"imgK.png"];
    [theImage drawInRect:rect];
}

Проблема в том, что мои изображения с альфой, а альфа-часть чёрная.

Так что, возможно, кто-нибудь знает решение или некоторые предложения к этому?Я прочитал много постов об этом, также используя основную графику, но не нашел решения ..

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

Ответы [ 2 ]

3 голосов
/ 10 февраля 2012

Хотите ли вы, чтобы этот вид был частично прозрачным и отображал объекты под ним? Если это так, используйте [self setOpaque:NO]. Непрозрачное представление drawRect отвечает за рисование каждого пикселя в прямоугольнике полностью непрозрачным цветом.

1 голос
/ 10 февраля 2012

Эта функция будет работать правильно для iOS 5.0.Когда вы будете использовать iOS версии <5.0, у вас будет альфа-часть черного цвета. </p>

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

UIImageView *image = [[UIImageView alloc] initWithImage: theImage];
image.opaque = NO;
[self.view addSubview: image];
...