【Swift5】UITabBarのサイズを変更する方法【Objective-C】
UITabBarのサイズを変更する方法をご紹介します。
UITabBarは基本的にTabBarの高さ49px + セーフエリア(下)の高さ34pxの合計83pxになっています。 ここでは「TabBarの高さ49px」のサイズを変更し、タブバーのサイズを変更します。
UITabBarのサイズを変更する方法
Swift5
import UIKit
class CustomTabBar: UITabBar {
override func sizeThatFits(_ size: CGSize) -> CGSize {
var sizeThatFits = super.sizeThatFits(size)
sizeThatFits.height = 150
return sizeThatFits;
}
}
Objective-C
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface CustomTabBar : UITabBar
@end
NS_ASSUME_NONNULL_END
#import "CustomTabBar.h"
@implementation CustomTabBar
- (CGSize)sizeThatFits:(CGSize)size {
CGSize sizeThatFits = [super sizeThatFits:size];
sizeThatFits.height = 150;
return sizeThatFits;
}
@end
UITabBarを継承したCustomTabBarという独自クラスを作成して上記のようにsizeThatFitsメソッドをオーバーライドします。
StoryboardでUITabBarControllerやUITabBarを実装している場合は、TabBarを選択して右側にあるCustom Classの設定を変更してください。
以上でUITabBarのサイズを変更することができます。
カスタムクラスを作らず、UITabBar本体のsizeThatFitsをオーバーライドする方法
Swift5
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
}
extension UITabBar {
override open func sizeThatFits(_ size: CGSize) -> CGSize {
var sizeThatFits = super.sizeThatFits(size)
sizeThatFits.height = 150
return sizeThatFits;
}
}
extensionを使用してsizeThatFitsメソッドをオーバーライドします
Objective-C
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface UITabBar (Helper)
@end
NS_ASSUME_NONNULL_END
#import "UITabBar+Helper.h"
@implementation UITabBar (Helper)
- (CGSize)sizeThatFits:(CGSize)size {
CGSize sizeThatFits = [super sizeThatFits:size];
sizeThatFits.height = 150;
return sizeThatFits;
}
@end
Helper(UITabBar+Helper.h、UITabBar+Helper.m)を作成してsizeThatFitsメソッドをオーバーライドします