UIBarButtonItem 自定义背景外观在翻转过渡后“跳跃”

2023-12-22

由于某种原因,当我为 uibarbutton 项目设置自定义背景图像时:

UIImage *button30 = [[UIImage imageNamed:@"nav_bar_button_orange.png"]
                     resizableImageWithCapInsets:UIEdgeInsetsMake(0, 5, 0, 5)];
[[UIBarButtonItem appearance] setBackgroundImage:button30 forState:UIControlStateNormal
                                      barMetrics:UIBarMetricsDefault];

我的按钮在水平翻转时“跳跃”或更新其宽度(或更准确地说是文本每一侧的填充)。

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStylePlain handler:^(id sender) {
    [self dismissViewControllerAnimated:YES completion:nil];
}];

忽略处理程序位,我正在使用 BlocksKit。

你可以在这里看到它发生:http://screencast.com/t/HZRBS70OT6wt http://screencast.com/t/HZRBS70OT6wt

附加信息

当我将按钮放在故事板而不是代码中时,它甚至会这样做。似乎只发生在水平翻转时。

Cause:

显然这与使用自定义字体有关。几乎就像一开始就没有正确计算宽度一样。

示例项目

在此示例项目中重现了问题 https://www.dropbox.com/s/dw3w9sbvfp14wl5/sample.zip。如果有人知道如何解决这个问题,我会很高兴。不敢相信没有人遇到过。


I don't know the reason of this behavior, but setting image inset helps to fix this. enter image description here

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

UIBarButtonItem 自定义背景外观在翻转过渡后“跳跃” 的相关文章

随机推荐

  • 在 Android Studio 3.2 中看不到 find-sample-code 选项

    In 文档 https developer android com studio write sample code inline他们讲述查找代码示例选项 导入示例 但我在 Android Studio 3 2 中看不到它们 在代码中 突出
  • 如何计算 QueryDSL 中结果组的数量?

    如何在 QueryDSL Java 中 中实现组计数 背景 我正在表上实现分页搜索 我想在返回结果之前对结果进行分组 除了平常的LIMIT x OFFSET y查询时 我还想接收总行数 这是一页的 简化的 SQL 查询 SELECT x y
  • const char[] 和 const char* 之间的区别

    So 本文 https glandium org blog p 2361正在讨论声明字符串文字的用法 例如const char foo foo 它以以下声明结束 const char foo foo 几乎从来都不是你想要的 相反 您想使用以
  • 如何使用 A-Star 或 Dijkstra 算法解决 15 个难题?

    我在一本人工智能书籍中读到 用于模拟或游戏中寻路的流行算法 A Star Dijkstra 也被用来解决著名的 15 谜题 谁能给我一些关于如何将 15 个拼图简化为节点和边图的指示 以便我可以应用其中一种算法 如果我将图中的每个节点视为游
  • 在 Reporting Services 2008 中显示时间

    我的报告中有一个表 其中有数据类型的列Time 7 现在我在 Reporting Services 2008 中正确格式化它们时遇到问题 如果我将表达式的格式设置为 HH mm 它仍然显示11 12 000 我只想得到小时和分钟 喜欢11
  • 选择一个工具来创建/维护自定义 Eclipse 发行版

    我想选择一个工具来创建 维护我的自定义 eclipse distrib 从下一个 3 6 开始 通过研究之前的问题 主要竞争者似乎是 Pulse http www poweredbypulse com Yoxos http ondemand
  • 在python中获取类和实例的属性

    在 python 中工作下一个代码 class MyClass object field 1 gt gt gt MyClass field 1 gt gt gt MyClass field 1 当我想要自定义字段的返回值时 我使用下一个代码
  • 当我使用 angularJS ng-repeat 时,它不显示我在 javascript 中附加的内容

    在 HTML 中 我想显示多行项目 任务时间线 在每一行中 gantt items gantt days 用于绘制 365 个小框 并呈现 一年 365 天 并且每一行需要显示一个蓝色块 表示该任务的分配时间段 timeline item
  • SignalR 2.X.X 的 Context.User.Identity.Name 为 null。如何修复它?

    这让我发疯 我正在使用最新的 signalR 版本 2 0 2 这是我的集线器代码 OnConnected public override Task OnConnected User is null then Identity and Na
  • C++ 将 ostream 作为参数传递

    我正在为一个虚拟名片盒做一个家庭作业项目 它需要一个主类 一个名片盒类和一个卡片类 为了将所有 卡片 的内容输出到控制台 赋值表示 main 应该调用 rolodex 类中的 show 函数 向其传递一个 ostream 和 show 然后
  • 如何让 VB6 与 Visual Source Safe 6.0 集成?

    我们在工作中使用 Visual Source Safe 6 0 VB6 应该能够与 Source Safe 顺利集成 这两个应用程序都安装在我的 PC 上 但 VB6 没有显示与 Source Safe 集成的选项 例如 签出文件 查看文件
  • 如何获取 python 解释器完整的 argv 命令行选项?

    我们从文档中得知 C 如果给出此选项 sys argv 的第一个元素将为 c 并且当前目录将添加到 sys path 的开头 允许该目录中的模块作为顶级模块导入 如何获得完整的解释器命令行选项 我需要它来解决这个问题 https githu
  • PySpark:如何在 For 循环中附加数据帧

    我正在对各个时间序列数据帧执行滚动中值计算 然后我想连接 附加结果 UDF for rolling median median udf udf lambda x float np median x FloatType series list
  • 检查 ios PhoneGap 中相机是否存在

    在我的照片中拍照时 我想在显示两种源类型之前检查相机是否存在phonegap应用 例如 iPad 1 没有相机 因此我不想显示从中选择源类型的弹出窗口Camera and My Photos 有什么东西在phonegap这告诉我相机是否存在
  • CSS 列 - 展开一个元素而不重新排列

    我在任何地方都找不到相同的场景 我已经在这上面浪费了过多的时间 我正在尝试实现一个正常的 webkit 列 其中元素在 y 方向上可单击 可展开 I drew this picture to explain what I mean 问题是
  • Postgres 查询执行时间

    In the MySQL命令行界面 当您执行查询时 它会告诉您打印结果后查询执行需要多长时间 在 Postgres 命令行界面中 psql 它不会告诉你 我知道如何配置日志记录 以便我可以从日志中获取信息 但将其打印到标准输出会更方便 就像
  • 如何在 Visual Studio 15 中禁用“运行执行到此处”?

    如何禁用将光标移动到代码左侧时出现的 运行执行到此处 按钮 当我在选择代码时不小心点击它时 真的很烦人 Uncheck 调试时显示运行以单击编辑器中的按钮在调试选项的最后
  • Oracle从xml中提取截断值

    我们有一个 CLOB 列 在其中存储相当简单的 XML 我需要从中提取其中一个标签的属性 我相信 select 语句是正确的 因为我得到了该值的一部分 但它会将其截断为 80 个字符 这是 XML 的片段
  • 根据参数绘制具有不同颜色的曲线[重复]

    这个问题在这里已经有答案了 我想用一些测量数据绘制一条曲线 它可以作为包含以下形式的项目的数组提供 t b 其中 t 是我要绘制的参数 b是描述测量设备状态的字符串 我现在想绘制的值t并根据值对线条进行着色b 到目前为止我的代码是 impo
  • UIBarButtonItem 自定义背景外观在翻转过渡后“跳跃”

    由于某种原因 当我为 uibarbutton 项目设置自定义背景图像时 UIImage button30 UIImage imageNamed nav bar button orange png resizableImageWithCapI