Compose UIBarButtonItem 在进入视图时会稍微改变位置

2024-01-05

当在导航栏中使用 UIBarButtonSystemItemCompose 按钮​​呈现新视图时,位置会稍微偏离并在视图进入视图后进行调整。

我认为这是iOS(使用8.3版本)中的一个错误。仅在使用 UIBarButtonSystemItemCompose 时才会发生。其他类型的按钮(系统、文本或自定义)不会发生这种情况。

复制此错误所需的唯一代码是将此 ViewController 代码与将进入视图的视图一起使用:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    UIBarButtonItem* composeBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera
                                      target:nil
                                      action:nil];

    [self.navigationItem setRightBarButtonItem:composeBarButtonItem animated:YES];
}

@end

我在 GitHub 上创建了一个存储库,使用最少的代码来重现该问题:https://github.com/jvdvleuten/iOSComposeBarButtonItemBug https://github.com/jvdvleuten/iOSComposeBarButtonItemBug

看起来与此相关:当 UINavigationController 以模态方式呈现时,UIBarButtonItems 会移动位置 https://stackoverflow.com/questions/25415711/uibarbuttonitems-shift-position-when-uinavigationcontroller-is-presented-modally,除了我的错误仅在使用 UIBarButtonSystemItemCompose 时出现。

有任何想法吗?


我使用了谢尔盖的答案,但在按钮右侧保留了一个空白区域。我用负垫片修复了这个问题,现在效果很好:

UIBarButtonItem* composeBarButtonItem =
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCompose
                                              target:nil
                                              action:nil];

UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc]
                                       initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
                                       target:nil action:nil];
negativeSpacer.width = -6;

UIBarButtonItem *dumbBarButtonItem = [UIBarButtonItem new];

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

Compose UIBarButtonItem 在进入视图时会稍微改变位置 的相关文章

随机推荐

  • 未解决的参考 BuildConfig

    当我尝试重建我的项目时 出现以下错误 warning flag is not supported by this version of the compiler Xallow no source files warning flag is
  • 基于Boost foreach实现enumerate_foreach

    作为这个问题的序言 我一直在一个更大的工具包中实现各种 C 实用函数和 当我必须这样做时 宏供我自己使用 最近我一直在制作各种基于 BOOST FOREACH 的循环宏以及可迭代的意识函数 长话短说 我在制作时遇到了困难枚举循环它使用 BO
  • Symfony 1.4 会话随机丢失

    这是我几个月前开始尝试的一个问题 从那以后我一直试图解决但没有成功 Symptoms symfony 在随机的时间间隔内丢失会话信息并注销用户 它似乎与网站的负载有某种联系 当负载较高时 用户注销似乎会更频繁 甚至可能会快至 30 秒 环境
  • 如何将 META 重新映射到 ALT?

    我在 Ubuntu 中使用 emacs 如何将 META 重新映射到 ALT 键 如果您在 gnome 终端中运行 emacs 则 gnome 终端可能会捕获您的 alt 键以打开 gui 菜单 文件 编辑等 您可以通过选择 编辑 gt g
  • Docker:服务器的空响应

    我在连接 docker 容器时遇到问题 服务器返回空响应 但配置似乎是正确的 当我使用 docker compose up 命令时 一切看起来都很好并且工作正常 但是我从服务器得到空响应 我仔细检查了端口映射 但我没有注意到任何东西 这是撰
  • git 不显示 unicode 文件名

    我在 Mac OS X 上使用 git 2 5 4 我的文件名包含 git 正在用转义符显示它 有没有办法让它使用unicode并显示字符 终端显然可以处理它 gt ls S l gt git status Untracked files
  • Discord.py重写获取公会成员列表

    只是想知道我将如何获取公会中所有当前成员的列表 然后将其作为消息返回 如果你想获取特定公会的成员数量 可以使用len guild members 如果您想获取列表 只需使用guild members 如果你想发送它 它可能不起作用 因为 D
  • Subversion - 是否可以禁用所有提交并使存储库只读?

    我有一个颠覆存储库 它是另一个远程存储库的镜像 我每周都会使用 svnsync 来镜像存储库 镜像存储库 本地副本 仅用于备份 我希望将镜像存储库保持为只读 即任何人都不能对此存储库提交任何更改 但他们可以使用它来读取源文件 因为它比远程存
  • 如何使用 mono 编译目录中的所有文件?

    我想用 mono 编译一个由多个文件组成的 C 应用程序 全部在 1 个目录中 我需要什么命令 Use gmcs out yourapp exe pkg dotnet cs or gmcs out yourapp exe pkg dotne
  • 从双精度数中删除 .0

    我正在尝试动态显示字符串中的数字 因此如果数字有小数 则显示它们 但如果没有 则不显示 0 示例 将 5 5 显示为 5 5 将 5 0 显示为 5 这是我到目前为止所拥有的 答案是双 double temp answer long tem
  • 如何在Python中进行指数和对数曲线拟合?我发现只有多项式拟合

    我有一组数据 我想比较哪一行最能描述它 不同阶的多项式 指数或对数 我使用 Python 和 Numpy 对于多项式拟合 有一个函数polyfit 但我没有发现这样的指数和对数拟合函数 有吗 或者另外如何解决 用于装配y A B log x
  • 显示模式对话框并获取结果

    我有一个静电WindowService帮助我创建新窗口和模式对话框的类 到目前为止 我所拥有的是这样的
  • 将 SQL Server 表加载到 pandas DataFrame 中的速度缓慢

    当使用 pyodbc 和主要函数 pandas read sql query pyodbc conn 从 SQL Server DB 加载超过 1000 万条记录时 Pandas 会变得异常缓慢 以下代码最多需要 40 45 分钟才能从 S
  • 将服务注入 Ember 对象 [不是 Ember 控制器]

    我正在尝试将 Ember 服务注入 Ember 对象 但不断收到以下错误 Assertion Failed Attempting to lookup an injected property on an object without a c
  • 想要在 iPhone 上显示 3D 模型:如何开始? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的
  • Postgres 将子查询结果括在括号中

    不要注意所提供的查询的无用性 它只是复杂查询的简化部分 我运行查询 SELECT elem FROM SELECT id FROM data AS elem 它产生的结果是 elem 5 4 24 3 23 为什么每个值都用括号括起来 所以
  • 没有依赖于模板参数的参数

    我正在尝试执行以下操作 template
  • 捕获所有键盘输入

    首先 我知道这可以用于键盘记录器 我不打算这样做 我正在寻找一个应用程序来侦听自定义按键组合 只是为了自动执行一些非常烦人的任务 有没有办法捕获键盘的所有输入 您似乎正在寻找RegisterHotKey http msdn microsof
  • 如何使用python脚本转换dos2unix csv文件

    我想在 Windows 中使用 python 将 csv 文件转换为 dos2unix 格式 现在我正在通过将 csv 文件放置在工作区 服务器 中并在 putty 中运行命令来手动执行操作 命令 dos2unix file receive
  • Compose UIBarButtonItem 在进入视图时会稍微改变位置

    当在导航栏中使用 UIBarButtonSystemItemCompose 按钮 呈现新视图时 位置会稍微偏离并在视图进入视图后进行调整 我认为这是iOS 使用8 3版本 中的一个错误 仅在使用 UIBarButtonSystemItemC