2

アニメーションをよりよく理解するために 1 日を費やしました。次のコードはうまく機能し、タブバーを非表示にします。問題は、近くにあるすべての UIButton が引き伸ばされることです。タブ バーにカスタム ボタンを含めます。画像の別のレイヤーに触れると、それが引き伸ばされます。それを回避するためにコードを修正する方法はありますか? ありがとう

 - (void)hideTabBar:(UITabBarController *) tabbarcontroller
  {
[UIView animateWithDuration:0.3
                      delay:0.0f
                    options:UIViewAnimationCurveLinear
                 animations:^{
    for(UIView *view in tabbarcontroller.view.subviews)
    {
    if([view isKindOfClass:[UITabBar class]] || [view isKindOfClass:[UIImageView class]])
    {
        [view setFrame:CGRectMake(view.frame.origin.x, 480, view.frame.size.width, view.frame.size.height)];
    }
    else
    {
        [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 480)];
    }
   }
                 }
                 completion:nil];
}

ここに画像の説明を入力

非表示後:

ここに画像の説明を入力

4

1 に答える 1

1

であり、ではUIButtonありませんUIImageView。スクリーンショットから、このボタンの別の部分になることは明らかです。

したがって、 if 条件を次のように変更する必要があります。

if([view isKindOfClass:[UIButton class]] || [view isKindOfClass:[UITabBar class]] || [view isKindOfClass:[UIImageView class]])

そしてフレームをセット。同様に、show メソッドも変更します。

于 2012-12-25T20:42:59.397 に答える