【问题标题】:How to add a custom CalloutView loaded from nib file如何添加从 nib 文件加载的自定义 CalloutView
【发布时间】:2012-01-20 17:26:05
【问题描述】:

我正在尝试为 AnnotationView 制作自定义标注视图。我见过this answer,似乎是一个很好的解决方案(它有效)。我正在尝试从 nib 文件加载 UIView,然后 UIView 出现了,但他的按钮不起作用,不要被按下。

有没有办法做到这一点?如何从 nib 文件加载 UIView 并使按钮工作? 或者也许有人帮我找到一个好的解决方案。

谢谢

这是我正在使用的代码:

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    [super setSelected:selected animated:animated];

    if(selected)
    {
        //Add custom view to self...
        calloutView = [[[NSBundle mainBundle] loadNibNamed:@"MyCustomView" owner:self options:nil] objectAtIndex:0];
        [self addSubview:calloutView];
    }
    else
    {
        //Remove custom view...
        if (calloutView) {
            [calloutView removeFromSuperview];
        }
    }
}

提前致谢

【问题讨论】:

  • 在您从 nib 加载视图的行之后抛出一个 NSLog(@"My callout view is: %@",calloutView),以确保它获取正确的对象。
  • 是的,同一个对象,是一个实例变量..

标签: iphone ios mkannotation callouts


【解决方案1】:

自定义 UIView 的 nib 应该有一个支持 UIView 类 (MyCustomView.h/.m)。在 Interface Builder 中,您需要将身份检查器下的自定义类值设置为您的自定义类。完成此操作后,您可以将笔尖中的 UIButton 连接到所需的 IBAction,方法是将连接(可能在内部进行修饰)从底部拖动到对象部分下的主视图(不是您可能习惯的文件所有者) .

希望对你有帮助

~祝你好运

【讨论】:

  • 也许我没有说清楚。问题不在于调用 IBAction。问题是按钮不是可触摸的。如果我 presentModalViewControllerUIViewController 将他的视图设置为相同的 calloutView,则它们的按钮是可触摸的。
【解决方案2】:

我找到了解决问题的方法:gik-animated-callout

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    • 2012-10-13
    • 2021-03-07
    • 2013-01-09
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多