0

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];
4

1 に答える 1

3

self.viewではなくchatButtonにサブビューとしてバッジを追加しています。forループはself.view.subviewsを反復処理しており、バッジはself.viewのサブビューではなく、chatbuttonのサブビューです。chatButton.subviewsを反復処理するか、すべてのサブビューを反復処理する再帰メソッドを作成する必要があります。または、階層全体を検索すると思われるviewWithTagを使用することもできます。

バッジを付けるためのインスタンス変数を保持し、[self.badgeremoveFromSuperview]またはself.badge.hidden=YESを呼び出します。

于 2012-02-03T02:43:14.580 に答える