iphone - 如何将 uibutton 添加到自定义注释 View
<p><p>我创建了一个自定义注释 View 。在 setSelected 方法中,我根据需要实现了一个 View ,现在我想向该 View 添加一个按钮。但是按钮没有检测到点击事件,
它被 mapView 吸收。我应该怎么做才能添加像 rightcalloutaccessory 这样的按钮。
提前致谢。</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>我通过将 <code>UIButton</code> 的控制事件更改为 </p> 解决了这个问题
<pre><code>
</code></pre>
<p>下面是我创建自定义注释的部分代码。</p>
<pre><code> - (CustomAnnotationView *)mapView:(MKMapView *)aMapView viewForAnnotation:(id <MKAnnotation>)annotation
{
if (])
{
CustomAnnotationView *newAnnotationView = nil;
// determine the type of annotation, and produce the correct type of annotation view for it.
newAnnotationView = [[ initWithAnnotation:annotation reuseIdentifier:nil delegate: targetController] autorelease];
;
;
return newAnnotationView;
}
}
@interface CustomAnnotationView : MKAnnotationView
{
}
@end
@implementation CustomAnnotationView
- (id)initWithAnnotation:(id <MKAnnotation>)annotation reuseIdentifier:(NSString *)reuseIdentifier delegate:(id)targetController
{
self = ;
/* Set initial width as you want. ex: 50X50*/
self.frame = CGRectMake(0, 0, Initial_width, Initial_height);
self.backgroundColor = ;
return self;
}
/* When you tap on an annotation this method is fired*/
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
if(selected){
/* When you select annotation, instead of showing default callout you can increase the width &height of annotation and add your custom view here*/
self.frame = CGRectMake(0, 0, max_width, max_height);
UIView *view = [initWithFrame:CGRectMake(6, 0, max_width-10, max_height)];
view.backgroundColor = ;
UIButton *but = ;
UIImage *img = ;
but = CGRectMake(x , y, img.size.width + 20,img.size.height + 15);
;
;
;
;
}
else {
/* When you tap outside of annotation, set the initial frame for the annotation. and remove the custom view from annotation*/
self.frame = CGRectMake(0, 0, Initial_width, Initial_height);
;
}
}
</code></pre></p>
<p style="font-size: 20px;">关于iphone - 如何将 uibutton 添加到自定义注释 View ,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/7877921/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/7877921/
</a>
</p>
页:
[1]