ビューの下部に非表示にしたいタブバーがあります。Saurabh から提供されたコードを使用して非表示にしています。
コードはうまく機能しますが、テキスト ビューの場所を変更する行を追加しました。しかし、テキスト ビューのサイズが変更されます。コードは次のとおりです。
- (void) hideTabBar:(UITabBarController *) tabbarcontroller {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
for(UIView *view in tabbarcontroller.view.subviews)
{
if([view isKindOfClass:[UITabBar class]])
{
[view setFrame:CGRectMake(view.frame.origin.x, 480.0f, 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.0f)];
}
}
[buttonView setFrame:CGRectMake(0.0, 154.0, 320.0, 306.0)];
[screenImageView setFrame:CGRectMake(0.0, 16.0, 320.0, 139.0 )];
[inputView setFrame:CGRectMake(20.0f, 105.0f, 280.0f, 50.0f)];
[UIView commitAnimations];
}
- (void) showTabBar:(UITabBarController *) tabbarcontroller {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
for(UIView *view in tabbarcontroller.view.subviews)
{
if([view isKindOfClass:[UITabBar class]])
{
[view setFrame:CGRectMake(view.frame.origin.x, 431.0f, view.frame.size.width, view.frame.size.height)];
}
else
{
[view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 431.0f)];
}
}
[buttonView setFrame:CGRectMake(0.0, 105.0, 320.0, 306.0)];
[screenImageView setFrame:CGRectMake(0.0, 16.0, 320.0, 90.0 )];
[inputView setFrame:CGRectMake(20.0f, 56.0f, 280.0f, 50.0f)];
[UIView commitAnimations];
}
inputView(UITextview)のサイズが変更されることを除いて、すべてがうまく機能します。タブバーを非表示にするとテキストビュー(inputView)の高さが58になり、再度タブバーを表示するとテキストビューの高さが43になります。
必要に応じて、いつでも 7 または 8 を足したり引いたりすることができました。しかし、何が原因なのかを知ることは良いことだと思いました。
ありがとう!