繁体   English   中英

从UIBarButtonItem删除徽章子视图

[英]Removing badge subview from UIBarButtonItem

我正在向UIBarButtonItem添加徽章,效果很好。 但是我无法删除它。 任何帮助表示赞赏。

谢谢。

码:

MKNumberBadgeView *badge = [[MKNumberBadgeView alloc] initWithFrame:CGRectMake(45, -10, 30,30)];
badge.value = @"!";
badge.layer.cornerRadius = 10;
badge.layer.masksToBounds = YES;
badge.tag = 42;

if ([self.chatCount isEqualToString:@"1"]) {
    [chatButton addSubview:badge];
} else {
    for (UIView *view in [self.view subviews] ) { if (view.tag == 42 ) { [view removeFromSuperview]; } }
    [badge release];

}

UIBarButtonItem *chat = [[UIBarButtonItem alloc] initWithCustomView:chatButton];
self.navigationItem.rightBarButtonItem = chat;
[chat release];

您将徽章添加为chatButton的子视图,而不是self.view。 您的for循环在self.view.subviews上进行迭代,并且badge不是self.view的子视图,而是chatbutton的子视图。 您将不得不遍历chatButton.subviews或创建一个遍历所有子视图的递归方法。 另外,您可以使用viewWithTag ,我认为它可以搜索整个层次结构。

我只是持有一个实例变量来标记并调用[self.badge removeFromSuperview]或self.badge.hidden = YES;。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM