改变UIImage

时间:2015-06-10 09:46:45

标签: objective-c xcode annotations uiimage cgrectmake

我有以下代码

    else if([annotation.title isEqualToString:NSLocalizedString(@"TITLE 1",nil)]|| [annotation.title isEqualToString:NSLocalizedString(@"TITLE 2",nil)])
    {
        static NSString *identifier = @"currentLocation";
        SVPulsingAnnotationView *pulsingView = (SVPulsingAnnotationView *)[self.mapView dequeueReusableAnnotationViewWithIdentifier:identifier];

        if(pulsingView == nil) {
            pulsingView = [[SVPulsingAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
            pulsingView.annotationColor = [UIColor colorWithRed:0 green:0.678431 blue:0 alpha:1];
            pulsingView.image = [UIImage imageNamed:@"image.png"];
            pulsingView.frame = CGRectMake(0, 0, 15, 15);
            pulsingView.canShowCallout = YES;
        }
        return pulsingView;

基本上它是一个图像,除此之外我们还有一个脉冲圆形注释。 点击图像时 - 注释描述使用"标题1"或"标题2"根据条件(这里不相关)出现。

问题很简单 - 当我申请时

            pulsingView.frame = CGRectMake(0, 0, 15, 15);

脉冲视图顶部的图像不会改变大小。

需要有关替代解决方案的帮助。

非常感谢你们!

2 个答案:

答案 0 :(得分:0)

1)试试这个

[pulsingView setFrame: CGRectMake(0, 0, 15, 15)];

而不是

pulsingView.frame = CGRectMake(0, 0, 15, 15);

2)如果第一个解决方案不起作用,您可能需要在使用Storyboard或...时禁用自动布局

3)如果您使用 XIB ,则可能需要添加

[pulsingView setNeedsDisplay];

答案 1 :(得分:0)

如果以前的答案不起作用,我曾经使用的一个小技巧就是调用setTranslatesAutoresizingMaskIntoConstraints:

您的代码如下:

[pulsingView setTranslatesAutoresizingMaskIntoConstraints:YES];