去掉 UINavigationBar 右侧的空间

2023-11-30

所以,这就是我想要实现的目标:

That's how it should look

It's a UINavigationBar with a UIBarButtonItem使用自定义初始化UIButton.
基本上是这样的:

UIButton *favoriteButton = [UIButton buttonWithType:UIButtonTypeCustom];
[favoriteButton addTarget:target
                   action:action
         forControlEvents:UIControlEventTouchUpInside];
favoriteButton.frame = CGRectMake(0.0f, 0.0f, 44.0f, 44.0f);

UIImage *backgroundImage = [[UIImage imageNamed:@"favorite-button-background-orange"]
                    resizableImageWithCapInsets:UIEdgeInsetsMake(0, 2, 0, 0)];
[favoriteButton setBackgroundImage:backgroundImage
                          forState:UIControlStateNormal];

UIBarButtonItem *favoriteButtonItem = [[UIBarButtonItem alloc] initWithCustomView:favoriteButton];

问题是我似乎无法摆脱右侧那个令人讨厌的小边框UINavigationBar.

That's how it looks

我尝试设置自定义TitleView如“如何删除 UIBarButtonItem 旁边的填充“但这并没有改变什么。

我还尝试添加另一个具有负宽度的 UIBarButtonItem (如我读过的一些博文中所建议的),但这也没有帮助。

UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
                 target:nil
                 action:nil];
negativeSpacer.width = -5.0f;
self.navigationItem.rightBarButtonItems = %[favoriteButtonItem, negativeSpacer];

我认为 iOS 不会让我更改它,因为“圆形边框”保留了一些(不可避免的?)空间/填充? 所以我的问题是。我应该如何解决这个限制?我需要创建自定义吗UINavigationBar班级?我可以通过修改来伪造它吗UIBarButtonItem?我只是使用了错误的组件吗?


没有用于自定义默认导航栏按钮项目的选项(back button, right bar button and left barbutton )在导航栏中。为了满足您的要求,您可以使用自定义导航栏。

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

去掉 UINavigationBar 右侧的空间 的相关文章

随机推荐

  • 将对象推入数组无法按预期工作

    我的目标是创建一个像这样的数组 str a number 1 str a number 2 str b number 1 str b number 2 所以我写了这个javascript abc a b num 1 2 arr a for
  • 如何使用 TestNG 框架和 Jenkins 运行 Selenium 测试

    我想使用 Jenkins 运行在 TestNG 框架中编写的 Selenium 测试 jenkins job Freestyle项目 中配置的命令 java cp J taf testng J taf workspace TestNGExa
  • 如何使用 htaccess 将下划线替换为破折号?

    好的 这是我的网址 http example com home process login 我想用破折号替换下划线 So http example com home process login会转到上面的网址 但它仍然会说process l
  • Ruby 中的常量和变量有什​​么区别?

    因此 我正在 CodeAcademy 上学习 Ruby 课程 但我一直在区分变量和类之间的差异 有人可以向我解释一下其中的区别吗 我给你饼干 无论我在网上哪里查找 都找不到任何有关此的信息 Ruby 中常量的想法是 它们只能分配一次值 而您
  • SpriteKit - 在随机位置创建而不重叠

    我想在随机位置创建一些精灵而不重叠 这是我的代码 var sprites SKSpriteNode for index in 0 spriteArray let sprite SKSpriteNode imageNamed named sp
  • 如何确定形状的旋转?

    我有以下形状 它可能会旋转未知的角度 我想确定其相对于水平轴的旋转 因此上面的形状的旋转等于 0 到目前为止 我提出的最好的想法是确定形状的轮廓 找到最小面积矩形 然后将其旋转作为形状本身的旋转 Mat mask imread path t
  • 在 d3.js 中反转色阶

    是否可以在 d3 中创建具有颜色域和数字范围的比例 我尝试了以下方法 var colorScale d3 scale linear range red white domain 3 9 5 console log cs colorScale
  • 即使关闭应用程序,列表视图突出显示的所选项目仍然保留

    我在如何保存和读取列表视图中突出显示的项目时遇到了麻烦 我使用下面的共享首选项 但我不知道下一步 请帮助我如何做到这一点 非常感谢任何帮助 Image ArrayList
  • 使用python创建多列的虚拟变量

    我正在处理一个包含两列 ID 号的数据框 为了进一步研究 我想为这些 ID 号 带有两个 ID 号 制作一种虚拟变量 但是 我的代码不会合并两个数据帧中的列 如何合并两个数据帧中的列并创建虚拟变量 数据框 import pandas as
  • iOS 7(非越狱)Wi-Fi RSSI 值

    是否可以在未越狱的 iOS 7 设备上获取 Wi Fi RSSI 值 我读到了 MobileWiFi framework 和Apple80211功能 如果我理解正确的话 它们在没有越狱的情况下无法工作 我不想在 App Store 上发布我
  • 使用 lighttpd 重写 - 如何删除文件扩展名

    我想使用lighttpd的mod rewrite来允许没有特定文件扩展名的请求 例如 我希望以下映射自动工作 请求 index 将提供 index php dir file gt dir file php dir file args gt
  • 如何堆叠与前一个矩形高度相应的矩形?

    我尝试制作一个简单的列视觉效果 其中矩形的高度由比例决定 var heightScale d3 scaleLinear domain 150 2500 range 10 80 我的代码是这样的 var margins top 100 lef
  • Tkinter 中的多个窗口?

    我是编程新手 很难找到教如何创建使用多个窗口的 GUI 的教程 例如 如果用户单击 查找 按钮 则会弹出一个包含搜索结果的窗口 我该如何实现这个目标 这在 Tkinter 中可能吗 任何对来源的建议 参考将不胜感激 谢谢 要创建您的第一个窗
  • 使用JQuery跨域获取Xml数据

    有没有办法用JQuery 客户端 跨域加载XML数据 get http otherdomain com data xml function xml 上面的方法不起作用 我是否必须依赖 JSONP 或者有没有办法加载 XML 无法加载 XML
  • 如何在 JFrame 中使用 setVisible?

    在我的程序中我有两个JFrame实例 当我点击next按钮我想显示下一帧并隐藏当前帧 所以我用this setVisible false 和新的Next setVisible true 但在Next如果我点击窗口back按钮我想将上一帧设置
  • 使用 AJAX、PHP 和 jQuery 上传多个图像

    我在使用 AJAX 上传多个图像时遇到很多问题 我写这段代码 HTML
  • ASP.Net Core 应用程序可以在 Visual Studio 中运行,但不能与 dotnet run 一起运行

    我有一个 asp net core 应用程序 我开始通过 Visual Studio 构建它 通常当我按 F5 或按 Visual Studio 中的调试按钮时它工作正常 However if I try to use dotnet run
  • 将单元格超链接到其自身的宏

    我已经创建了一个宏 允许我双击超链接 它会根据我单击的单元格显示另一张工作表中的信息 现在我想自动化超链接过程 我需要一个宏 它将获取名称列表并将所有这些单元格超链接到自身 到目前为止 我有一个宏 它超链接激活的单元格 但返回值 0 但已超
  • 仅单击按钮即可添加记录

    我有一个 数据输入 属性设置为 是 的表单 它绑定到一个表 当我开始填写表格时 它会自动保存 我不希望这种情况发生 我只想在按下按钮时将表单保存到表格中 有什么简单的方法可以做到这一点吗 不含 VBA 如果我只能用 vba 做到这一点 请告
  • 去掉 UINavigationBar 右侧的空间

    所以 这就是我想要实现的目标 It s a UINavigationBar with a UIBarButtonItem使用自定义初始化UIButton 基本上是这样的 UIButton favoriteButton UIButton bu