更改UI标签栏宽度ios 13 swift

Posted

技术标签:

【中文标题】更改UI标签栏宽度ios 13 swift【英文标题】:Change UIITabbar width ios13 swift 【发布时间】:2019-10-30 11:42:37 【问题描述】:

我有这段代码在 ios13 之前完美运行:

override func viewWillLayoutSubviews() 
     super.viewWillLayoutSubviews()

     var newFrame = tabBar.frame
     newFrame.size.width = self.view.bounds.width - 420
     tabBar.frame = newFrame

 

但现在它在运行 ipad 的 ios13 上没有任何作用。 我也尝试过使用extention 并创建我自己的CustomTabBar 并从sizeThatFits() 方法更改宽度,但是此方法ONLY CHANGES THE HEIGHT 并且在尝试更改标签栏的宽度时它什么都不做

【问题讨论】:

【参考方案1】:

改成这个

override func viewDidLayoutSubviews() 
     super.viewDidLayoutSubviews()

     var newFrame = tabBar.frame
     newFrame.size.width = self.view.bounds.width - 420
     tabBar.frame = newFrame

 

这在 Objective-C 中是这样工作的,刚刚测试过:

- (void)viewDidLayoutSubviews 
  [super viewDidLayoutSubviews];

  CGRect newFrame = self.tabBar.frame;
  newFrame.size.width -= 200;
  self.tabBar.frame = newFrame;


在 Swift 中应该是一样的,虽然我不知道为什么你会想要这样做,除了将标签栏按钮移到左边之外它不会做任何事情

【讨论】:

以上是关于更改UI标签栏宽度ios 13 swift的主要内容,如果未能解决你的问题,请参考以下文章

swift 更改标签栏项目图像和文本颜色iOS

iOS 标签栏问题 (Swift)

如何在ios中更改标签栏项目的背景图像?

在 Swift 中更改标签栏徽章大小

ios 8/swift 标签栏多点点击图标小我怎么办? [关闭]

更改标签栏的高度和宽度并添加圆角