iOS Swift 标签栏图标插入在运行时被删除

2024-02-17

我在标签栏控制器中有两个 ViewController。在界面生成器中,我已将图像插图 (5, 5, 5, 5) 应用于选项卡栏图标,以获得我想要的尺寸。当我最初运行模拟器时,一切看起来都很棒,但是当我使用 Tab 键切换到第二个 ViewController 时,两个选项卡栏图标都会自动调整为默认值 (0, 0, 0, 0)。当我按回键返回第一个 ViewController 时,两个图标都保持默认大小,没有插图。

注意:我的图标图像是 XCassets 文件夹中的 .pdf 文件(设置为单个矢量比例因子)。我见过其他建议“平衡”插图的帖子(顶部为 5,底部为 -5)。但这会将图像从顶部压缩 5 倍,并向底部拉伸 5 倍。我不明白这意味着如何平衡图像大小。

如果有人知道什么代码将在运行时设置插图,也许我可以使用它而不是在界面生成器中设置插图?提前致谢。


阅读文档,UIBarItem(超类UITabBarItem)有财产imageInset,您可以通过以下方式访问选项卡栏项目self.tabBarController.tabBar.items.

在没有亲自测试的情况下,我认为您可能会遇到阴影更改(由于选择)时重置插图的问题。

因此,您可能会发现每次更改选择时(我认为这可以通过委托检测到),您需要将插图重置为所需的大小。

或者,您可能会发现仅将源图像自定义为所需的最终外观可能会更容易。

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

iOS Swift 标签栏图标插入在运行时被删除 的相关文章

随机推荐

  • 有没有办法自动关闭 fork() 上的某些句柄?

    背景 我有一个大型的现有进程 它恰好在 AIX 上 所以基本上是 POSIX 语义 它是一个更大系统的一部分 现有流程设计为连续运行 此过程的一个新要求是处理一种新型的复杂输入流 为了降低风险 我决定分叉 执行一个子进程来执行实际的输入处理
  • 从 Terraform 状态文件中获取特定值

    我已经使用 Terraform 部署了我的基础设施 我注意到我在该州有一些有趣的信息 terraform tfstate 我想提取的 terraform 文件 例如 terraform state show packet device wo
  • Winston 3.0 对控制台上的整个输出进行着色

    我正在开发一个 Node js 应用程序 使用babel cli https www npmjs com package babel cli作为 ES6 转译器 我正在使用温斯顿3 0 https www npmjs com package
  • 删除以哈希开头的所有列表元素

    我有一个包含元素的列表 其中一些以 开头 我怎样才能删除这些元素 我试过 content x for x in content 0 if x but content 0 似乎无效 做这个的最好方式是什么 content x for x in
  • 如何在 Rust 可执行文件中嵌入资源?

    这是这个问题在这里 https stackoverflow com questions 10036769 how do you embed resource files in c对 C 提出同样的要求 基本上 有没有比将其转换为巨大的字节数
  • java线程立即更新UI

    我有一个 javaFX 应用程序 可以可视化计算几何算法 算法的执行发生在另一个线程中 我们称之为mainComputingThread 算法可以通过添加 删除 修改形状随时更新 UI 所以代码将如下所示 do some computaio
  • Spark SQL thrift 服务器无法以集群模式运行?

    在 Spark 1 2 0 中 当我尝试以集群模式启动 Spark SQL thrift 服务器时 我得到以下输出 Spark assembly has been built with Hive including Datanucleus
  • 尽管有写权限,scaling_max_freq 仍然无法更改

    我正在尝试更改存储的值in sys devices system cpu cpu0 cpufreq scaling max freq当前设置为 1512000 我正在尝试通过 adb shell 来执行此操作 我输入 su 然后导航到 sy
  • mysql2 gem 安装失败

    我的堆栈如下 CentOS 6 3 安装了 MySQL 5 5 步骤如下http www if not true then false com 2010 install mysql on fedora centos red hat rhel
  • 使用 ASP.NET GenericHandler 时管理 ASP.NET 中的会话超时

    例如 我有一个使用 jQuery 作为客户端框架的 Web 应用程序 现在 大多数页面都通过使用 AJAX 来运行 并通过使用通用处理程序 ashx 与服务器进行通信 现在我有一个问题 我想看看当我的用户会话过期时处理这些请求的最佳解决方案
  • 操纵事件和平移模式

    我正在开发一个用于触摸设备的 WPF 我面临一个奇怪的问题 我的 XAML 结构是
  • 在 Winforms 中检测空闲用户

    如果用户有 5 分钟不活动 我想暂停我的程序 我所说的不活动是指在那段时间没有按下鼠标或键盘 包括在程序之外 有什么出发点吗 在计时器内你可以 p invokeGetLastInputInfo http www pinvoke net de
  • 一次性编写字典?

    我很想在 Python 中拥有一个一次性写入的字典对象 这样 my dict 1 foo my dict 2 bar my dict 1 baz Raises KeyError 我可以想象制作一个简单的食谱 但我想知道是否存在经过深思熟虑的
  • 如何在 win32 中创建具有默认行为的按钮

    我一直在尝试创建一个具有默认行为的按钮 即当用户按 ENTER 时 该按钮将被触发 我使用 WS TABSTOP 样式创建了按钮 并向其发送了带有 BS DEFPUSHBUTTON has WPARAM 参数的 BM SETSTYLE 消息
  • 如何访问具有数组类型值的 Solidity 映射?

    我定义了一个映射类型的状态变量 例如映射 uint256 gt uint256 我想将其公开 以便我可以从合同之外访问它 但是编译器报错TypeError Wrong argument count for function call 1 a
  • Android ListView 排序

    我只是从 Android 开发开始 虽然 Milestone 是一个不错的设备 但 Java 不是我的自然语言 而且我在 Android SDK Eclipse 和 Java 本身的 Google 文档上遇到了困难 反正 我正在为 Andr
  • Realm Swift 回调函数

    我使用 swift3 和 Realm 2 3 交易完成后我需要回调 例如 我有如下代码 如何在领域数据事务完成后获得回调 DispatchQueue main async try self realm write self realm ad
  • LINQ - (x, i) 做什么?

    我今天偶然发现了这段代码 并意识到我根本不理解它 someArray Select x i gt new XElement entry new XElement field new XAttribute name Option i 1 重点
  • 从 VS2015 发布后,DNX Web 命令抛出“无法解析项目”错误

    这是关于 net core 的过时预发布版本 我使用 Visual Studio 2015 的测试版 预览版在预发布的 ASP Net 5 后来更名为 asp net core 中创建了一个基本项目 我已将该项目发布到文件系统并尝试运行它从
  • iOS Swift 标签栏图标插入在运行时被删除

    我在标签栏控制器中有两个 ViewController 在界面生成器中 我已将图像插图 5 5 5 5 应用于选项卡栏图标 以获得我想要的尺寸 当我最初运行模拟器时 一切看起来都很棒 但是当我使用 Tab 键切换到第二个 ViewContr