您好我正在尝试在附加到我的MapView MKAnnotation标注视图的详细信息披露UIButton上设置背景图像。检查stackoverflow是否有一致的示例如何设置它,但它似乎不适用于我的标注UIButton。我的问题是,这不起作用,仅仅是因为mapview还是我错过了其他的东西? 这是我的代码:
// If an existing pin view was not available, create one.
pinView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"CustomPinAnnotationView"];
pinView.canShowCallout = YES;
pinView.image = [UIImage imageNamed:@"Tch4"];
//pinView.calloutOffset = CGPointMake(0, 32);
pinView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
UIImage *btnImage = [UIImage imageNamed:@"4stars"];
[pinView.rightCalloutAccessoryView setBackgroundImage:btnImage forState:UIControlStateNormal];
我在最后一行收到错误。错误是:没有UIView的可见界面声明选择器' setbackgroundimage:forstate'
感谢您对此的帮助
答案 0 :(得分:1)
您的问题是rightCalloutAccessoryView
返回UIView
个实例。并且UIView
不响应setBackgroundImage:forState:
方法。
您要找的是添加UIButton
而不是这样的内容:
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeCustom];
infoButton.frame = CGRectMake(0, 0, 32, 32); // Set your own frame
[infoButton setBackgroundImage:btnImage forState:UIControlStateNormal];
[infoButton setBackgroundImage:btnImage forState:UIControlStateSelected];
pinView.rightCalloutAccessoryView = infoButton;
答案 1 :(得分:0)
如果您的类型按钮DetailDisclosure,则无法设置背景图像。 你可以将extraubview图像添加到rightCalloutAccessoryView但没有按钮..
所以,如果您仍然使用typebutton DetailDisclosure,则无法设置背景