【发布时间】:2013-12-18 22:37:21
【问题描述】:
我有一个地图视图,上面有几个注释和一个搜索栏。在 iOS 6 中一切正常,但在 iOS 7 中存在问题。在 iOS 7 中,当我选择一个图钉时,会弹出标题,我可以点击信息按钮转到该位置的详细视图。问题是当我在 iOS 7 上搜索时,作为搜索结果的注释在注释周围出现黑色区域,我无法点击信息按钮。
这里是在不搜索的情况下选择一个图钉:
这是在搜索之后:
这是我搜索时发生的代码:
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
id<MKAnnotation> ann;
BOOL annotationFound = NO;
// NSRange titleRange = [annTitle rangeOfString:searchText options:NSCaseInsensitiveSearch];
// NSRange subtitleRange = [annSubtitle rangeOfString:searchText options:NSCaseInsensitiveSearch];
for (int i = 0; i < [marketLocations count]; i++)
{
for (ann in marketLocations)
{
NSString *annTitle = ann.title;
NSString *annSubtitle = ann.subtitle;
NSString *searchText = [searchBar text];
NSRange titleRange = [annTitle rangeOfString:searchText options:NSCaseInsensitiveSearch];
NSRange subtitleRange = [annSubtitle rangeOfString:searchText options:NSCaseInsensitiveSearch];
CLLocationCoordinate2D annCoord;
annCoord.latitude = ann.coordinate.latitude;
annCoord.longitude = ann.coordinate.longitude;
// if ([ann.title isEqualToString:[searchBar text]])
if (titleRange.location != NSNotFound)
{
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(annCoord, 5000, 5000);
[worldView setRegion:region animated:YES];
[worldView selectAnnotation:ann animated:YES];
annotationFound = YES;
}
// else if ([ann.subtitle isEqualToString:[searchBar text]])
else if (subtitleRange.location != NSNotFound)
{
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(annCoord, 5000, 5000);
[worldView setRegion:region animated:YES];
[worldView selectAnnotation:ann animated:YES];
annotationFound = YES;
}
}
}
if (annotationFound == NO)
{
UIAlertView *av = [[UIAlertView alloc]initWithTitle:@"" message:@"No Matches Found" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[av dismissWithClickedButtonIndex:0 animated:YES];
[av show];
}
[searchBar resignFirstResponder];
}
【问题讨论】:
标签: ios objective-c ios7 annotations mkmapview