【问题标题】:How to create compose bar button item like in Messages app如何在消息应用程序中创建撰写栏按钮项目
【发布时间】:2020-07-24 16:27:30
【问题描述】:

iOS 上的 Messages 应用程序在主视图控制器中的大标题文本“Messages”旁边放置了两个条形按钮项,并带有圆圈样式。

如何使导航栏中的自己的栏按钮项具有相同的行为?

【问题讨论】:

    标签: ios objective-c uiviewcontroller uibarbuttonitem


    【解决方案1】:

    我认为demo project 应该给你足够的提示来帮助你。

    附录:您可能已经意识到这一点,但如果您还特别想要一个搜索栏,还有一个 UISearchController ViewController 来帮助获取用户输入并使用结果填充 TableView。

    附录:进一步调查,已经有一个 SOanswer 涵盖了这个。此外,咨询 API reference 表明 setToolbarItems 已经支持添加 UIBarButtonItem 的数组

    就自定义按钮而言,请查看reference,其中有一个关于自定义外观的部分。此外,UIBarButtonItem 的构造函数也方便地支持使用UIImage。如果那里的内容不足以满足您的需要,您始终可以继承 UIBarButtonItem 并更改那里的视图。

    【讨论】:

    • 感谢您的回答。该项目有几个很好的例子,但它们没有展示如何创建我在问题中描述的自定义栏按钮项。
    • 我已更新答案以更好地反映您的担忧。
    • 感谢更新的答案。我仍然无法确定 Apple 是否在消息应用程序中使用自定义或系统栏按钮项。撰写图标是一种系统类型,但除非他们使用自定义图像执行此操作,否则我看不到如何将按钮设置为圆形。我也找不到有关如何将按钮直接放置在大导航文本右侧的文档。
    • 就个人而言,我可能只是创建自定义图像。您可以尝试找到一个系统,但搜索所有系统会很痛苦,而且如果您考虑到特定的设计语言,那么无论如何您都将最终创建自定义资产。如果你有一个矢量艺术程序,那么做起来相当简单。
    • Apple 是否使用自定义视图,我同意这很难说。我只是尝试在 Storyboards 中复制布局,但我无法快速找到一种方法来直接添加/使其显示为搜索栏作为导航栏的一部分,至少不会很快。此外,当我尝试将标题向上推时,它不喜欢它。最好的猜测是,Apple 为 viewcontroller 使用了自定义 titleView。他们确实知道 titleView 属性确实允许按钮,并且如果不是 nil,它会自动调整大小以适应。但会得到你想要的就另当别论了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-07
    • 1970-01-01
    • 2023-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多