325*_*523 18 uitabbarcontroller uitabbar
我试图将股票UITabBar的高度更改为44px,类似于Tweetbot的标签栏高度.我也看到其他一些应用程序也这样做了.

但是,当我尝试设置高度时,它仍然保持不变
self.tabBar.frame.height = 40
Run Code Online (Sandbox Code Playgroud)
我们不允许更改标签栏高度吗?如果有的话,什么是好的选择呢?使用工具栏?
Som*_*Guy 37
似乎每个人都说这不容易做到
在您的故事板中为UITabBar提供自定义子类名称,然后使用以下内容实现子类
这告诉所有使用标签栏的视图应该是一定的高度.
@implementation MyTabBar
-(CGSize)sizeThatFits:(CGSize)size
{
CGSize sizeThatFits = [super sizeThatFits:size];
sizeThatFits.height = 100;
return sizeThatFits;
}
@end
Run Code Online (Sandbox Code Playgroud)

Cla*_*ble 32
SomeGuy的上述答案对我有用.这是可能需要它的任何人的Swift翻译.我的高度接近它似乎最受欢迎的应用程序使用的高度.
class TabBar: UITabBar {
override func sizeThatFits(size: CGSize) -> CGSize {
var sizeThatFits = super.sizeThatFits(size)
sizeThatFits.height = 38
return sizeThatFits
}
}
Run Code Online (Sandbox Code Playgroud)
Mus*_*ari 11
对于Swift 3和xcode 8
extension UITabBar {
override open func sizeThatFits(_ size: CGSize) -> CGSize {
var sizeThatFits = super.sizeThatFits(size)
sizeThatFits.height = 80 // adjust your size here
return sizeThatFits
}
}
Run Code Online (Sandbox Code Playgroud)
在你的UITabBarController中
- (void)viewWillLayoutSubviews {
CGRect tabFrame = self.tabBar.frame;
tabFrame.size.height = 80;
tabFrame.origin.y = self.view.frame.size.height - 80;
self.tabBar.frame = tabFrame;
}
Run Code Online (Sandbox Code Playgroud)
在swift中,它比上面提到的所有解决方案都更简单,使用UITabBar的扩展,不需要子类化:
extension UITabBar {
override public func sizeThatFits(size: CGSize) -> CGSize {
super.sizeThatFits(size)
var sizeThatFits = super.sizeThatFits(size)
sizeThatFits.height = <Insert your height here>
return sizeThatFits
}
}
Run Code Online (Sandbox Code Playgroud)
如果启用了自动布局,则需要替代instrinsicContentSize
在具有自动布局的UIView子类上正确使用internalContentSize和sizeThatFits:
class TabBar: UITabBar {
override func intrinsicContentSize() -> CGSize {
var intrinsicSize = super.frame.size
intrinsicSize.height = 120
return intrinsicSize
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18507 次 |
| 最近记录: |