我们如何创建一个更大的中心 UITabBar Item

2024-03-27

我想知道我们如何创建一个更大的中心 UITabBar,如下图所示?真的很漂亮!!!!


单击要突出显示的特定选项卡栏项目的视图控制器内的选项卡栏按钮,

删除文本,只需将标签栏按钮的图像插入顶部设置为-25即可。

就像下图一样

在那之后

goto assets,
select the image you set in tab bar button,
set the property Rendering As to Original Image (in case if you have a colourful button or else it would render as one colour)
Like below, enter image description here

Now, You will get it like you wanted, enter image description here

编辑:要使上半部分可点击,请继承 UITabBar

class ProminentTabBar: UITabBar {
    var prominentButtonCallback: (()->())?
    
    override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
        guard let items = items, items.count>0 else {
            return super.hitTest(point, with: event)
        }
        
        let middleItem = items[items.count/2]
        let middleExtra = middleItem.imageInsets.top
        let middleWidth = bounds.width/CGFloat(items.count)
        let middleRect = CGRect(x: (bounds.width-middleWidth)/2, y: middleExtra, width: middleWidth, height: abs(middleExtra))
        if middleRect.contains(point) {
            prominentButtonCallback?()
            return nil
        }
        return super.hitTest(point, with: event)
    }
}

并在 TabBarController 添加这个

override func viewDidLoad() {
    super.viewDidLoad()
    
    let prominentTabBar = self.tabBar as! ProminentTabBar
    prominentTabBar.prominentButtonCallback = prominentTabTaped
}

func prominentTabTaped() {
    selectedIndex = (tabBar.items?.count ?? 0)/2
}

请记住,对于 UITabBar 没有很好的解决方案:-)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我们如何创建一个更大的中心 UITabBar Item 的相关文章

随机推荐

  • Kotlin readln() 无法按预期工作

    如果我连续从 readln 赋值 它们将无法正常工作 第二个变量是空行 fun main val first readln val second readln println first println second 第二个变量是否读入一些
  • 在 TeamCity 代理的 Windows 服务下运行时,MicrosoftWebDriver 构建时失败

    使用 Windows 10 专业版 MicrosoftWebDriver 版本 14393 我在使用 Edge 运行 UI 测试套件时遇到问题 而 Chrome Firefox 和 IE11 都可以 在标准 Windows 开发环境中运行时
  • 在 VBA 中更改 HTML 电子邮件正文字体类型和大小

    我有一个 VBA 脚本 当在给定工作表中按下 VBA 按钮时 该脚本会生成并发送电子邮件 该脚本当前以相对较小的字体生成电子邮件 我想知道是否有办法将字体设置为 Calibri 并将文本设置为 11 这是当前的 VBA 脚本 Private
  • Backbone 对象渲染没有方法 apply - 绑定问题

    所以我在我的 AppView 中这样做 var flowerModel new app DataModel title flower values tulip rose dandelion dataToShow tulip rose dan
  • 确定 macOS Catalina、Big Sur 及更高版本中的卷组

    从 macOS 10 15 Catalina 开始 用户看到的卷实际上可能由多个卷组成 例如系统卷和数据卷 我正在编写一个需要单独识别这些卷的工具 因为当使用特定的文件操作时 例如searchfs and fts read 它们不跨越这样的
  • Visual Studio 2017,无法调试或运行应用程序

    今天我打开计算机后 我根本无法调试或运行该应用程序 如果我发布该项目 它就可以正常工作 但如果我从 Visual Studio 运行它 它就会卡住加载并且 Visual Studio 停止响应 以下是我强制退出应用程序时出现的错误 抛出异常
  • 添加到 WordPress 主题时 Bootstrap 日期选择器和时间选择器不起作用

    真的希望你能帮我解决这个问题 我迷路了 我已经添加bootstrap datepicker js https github com eternicode bootstrap datepicker and bootstrap timepick
  • .NET 中有自动排序的列表吗?

    我有一个收藏Layers它们有名字和颜色 我想做的是首先根据颜色对它们进行排序 然后根据它们的名称进行排序 class Layer public string Name get set public LayerColor Color get
  • 美丽汤 Unicode 编码错误

    我正在尝试使用特定 HTML 文件执行以下代码 from BeautifulSoup import BeautifulSoup import re import codecs import sys f open test1 html htm
  • 使用Delphi创建Win7跳转列表[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试使用 Delphi 在 Windows 7 上为我的应用程序创建跳转列表 我找到了这个 C 代码 但我不知道如何将其转换为
  • 循环迭代器命名约定[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们知道 不知何故 我们使用i and j循环中的变量非常常见 如果一个人需要双for循环 很可能会使用如下所示的内容 for int i 0
  • 单击

    看起来 active仅适用于background单击时的瞬间颜色
  • Ecto.Migrations.references/2 中的 on_delete 选项有什么作用?

    The 埃克托文档 https hexdocs pm ecto sql Ecto Migration html references 2描述了可用的选项references 2 但没有记录这些选项的作用 可用的选项有 nothing del
  • 如何在 JavaScript 中将公历日期更改为波斯日期?

    谁能帮我在 JavaScript 中将公历日期更改为波斯日期 我想在 HTML 和 JavaScript 中使用它 您可以使用toLocaleDateString let today new Date toLocaleDateString
  • DICOM 文件压缩

    我的工作需要使用 DICOM 文件 每个 DICOM 文件由单个目录中的许多 dcm 文件组成 我需要通过网络发送这些文件 由于文件很大 这个过程在某种程度上是这样的 我也是一名程序员 我想知道压缩此类文件的理想方法是什么 我说的是在本地计
  • Ruby - 如果 url 是重定向,如何下载文件?

    如果 url 是重定向 Ruby 如何下载文件 我正在尝试下载这个网址 soundcloud com stereo f cohete amigo download 重定向是这样的 ec media soundcloud com HNIGsu
  • 如何在 templatete js 之后包含组件 js

    我在 templatete index php 上添加了 javascript doc JFactory getDocument doc gt addScript this gt baseurl templates this gt temp
  • 获取终端中可用线路的数量

    如何找到终端中的可用线路数量 最好以跨平台的方式 但欢迎任何建议 甚至特定于操作系统 终端的高度和长度可以使用以下公式找到os https docs python org 3 library os html querying the siz
  • 暂停本地通知

    我正在开发一个警报应用程序 并为此使用本地通知 现在我想为我的闹钟添加贪睡功能 我在Google上搜索发现iPhone不支持此类功能 但还有其他方法可以做到这一点吗 据我所知 当通知窗口弹出时 您无法添加自定义行为 但 你可以这样尝试 用户
  • 我们如何创建一个更大的中心 UITabBar Item

    我想知道我们如何创建一个更大的中心 UITabBar 如下图所示 真的很漂亮 单击要突出显示的特定选项卡栏项目的视图控制器内的选项卡栏按钮 删除文本 只需将标签栏按钮的图像插入顶部设置为 25即可 就像下图一样 在那之后 goto asse