我自定义了我的 MKAnnotationView,当我触摸它时,它会输入以下代码
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view {
CellThumbnailView *thumbnailView = (CellThumbnailView *)view;
[mapView setCenterCoordinate:thumbnailView.thumbnail.coordinate animated:YES];
CGSize size = [thumbnailView.thumbnail getThumbnailSize];
thumbnailView.frame = CGRectMake(0, 0, size.width, size.height);
thumbnailView.centerOffset = CGPointMake(0, -[thumbnailView.thumbnail getThumbnailCenterOffset] + size.height / 2);
// Center map at annotation point
thumbnailView.imageView.center = CGPointMake(size.width / 2, size.height/ 2);
thumbnailView.imageView.bounds = CGRectMake(0, 0, size.width, size.height);
thumbnailView.imageView.image = [UIImage imageNamed:[thumbnailView.thumbnail getPopupImageName]];
CGSize labelOffset = [thumbnailView.thumbnail getThumbnailLabelOffset];
thumbnailView.titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 45, 20)];
thumbnailView.titleLabel.backgroundColor = [UIColor clearColor];
thumbnailView.titleLabel.textColor = [UIColor blueColor];
thumbnailView.titleLabel.shadowColor = [UIColor colorWithWhite:1 alpha:0.5];
thumbnailView.titleLabel.shadowOffset = CGSizeMake(0, -1);
thumbnailView.titleLabel.font = [UIFont boldSystemFontOfSize:17];
thumbnailView.titleLabel.alpha = 1;
thumbnailView.titleLabel.minimumScaleFactor = .8f;
thumbnailView.titleLabel.adjustsFontSizeToFitWidth = YES;
thumbnailView.titleLabel.center = CGPointMake(thumbnailView.center.x - labelOffset.width, thumbnailView.center.y - labelOffset.height);
thumbnailView.titleLabel.text = [NSString stringWithFormat:@"%dG", thumbnailView.thumbnail.traffic];
[thumbnailView addSubview:thumbnailView.titleLabel];
self.location.text = thumbnailView.thumbnail.desc;
self.traffic.text = thumbnailView.titleLabel.text;
self.reportView.hidden = NO;
}
如果您注意到这一点:
thumbnailView.frame = CGRectMake(0, 0, size.width, size.height);
这意味着我想把我的缩略图改成一个大的,所以我改变了框架。
但是随着这个框架的变化,当我触摸视图时,它就消失了。
但是在我放大或缩小后,它再次显示。
奇怪的是:当我删除那个框架变化时,问题就消失了。
我想知道为什么以及如何解决这个问题(如果可能的话,我仍然需要更改框架)。