0

このコードをタブ バー クラスとして使用しています。これにより、より大きな中央ボタンを備えたカスタム タブ バーが得られます。私の問題は、タブバーを非表示にしようとすると、タブバーが消えますが、中央のボタンの画像は表示されたままです。タブバーで中央のボタンを非表示にするにはどうすればよいですか?

[self addCenterButtonWithImage:[UIImage imageNamed:@"hood.png"] highlightImage:[UIImage imageNamed:@"hood-selected.png"] target:self action:@selector(buttonPressed:)];

....

- (void)addCenterButtonWithImage:(UIImage *)buttonImage highlightImage:(UIImage *)highlightImage target:(id)target action:(SEL)action
{
    UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin;
    button.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height);
    [button setBackgroundImage:buttonImage forState:UIControlStateNormal];
    [button setBackgroundImage:highlightImage forState:UIControlStateHighlighted];

    CGFloat heightDifference = buttonImage.size.height - self.tabBar.frame.size.height;
    if (heightDifference < 0) {
        button.center = self.tabBar.center;
    } else {

        CGPoint center = self.tabBar.center;
        center.y = center.y - heightDifference/2.0;
        button.center = center;

    }

    [button addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:button];
}

アップデート:

私が書いた別のクラスから:

TabBarController *blah = [[WBTabBarController alloc]init];
[blah hideButton];

....

TabBarController.h:

@property (nonatomic, strong) UIButton* button;

TabBarController.m:

self.button = button;

...

-(void)hideButton
{
    _button.hidden = YES;
    NSLog(@"Test!!!");
}

しかし、うまくいきません。_button.hidden = YES;TabBarController の viewDidLoad を入れると、ボタンは非表示になります。

4

1 に答える 1

1

[self.button removeFromSuperView]

または button.hidden=YES

ここにあるようにサブビューを追加すると [self.view addSubview:button]; そして、それを削除したい場合は、通常 [self.button removeFromSuperView]; を実行します。

タブバーを非表示にするメソッドで put [self.button removeFromSuperView]; これもうまくいきませんか?

于 2012-12-17T23:47:54.740 に答える