【问题标题】:Add iOS Close Button Icon Without Custom Image添加没有自定义图像的 iOS 关闭按钮图标
【发布时间】:2013-12-31 03:06:07
【问题描述】:

iOS7 内置的自定义 X 或关闭按钮图标可用于关闭按钮吗?

【问题讨论】:

  • 不,iOS 7 中没有任何控件。
  • 但是您可以使用字符“x”创建自己的,并将边框和角设置为看起来像一个按钮。

标签: ios icons


【解决方案1】:

在 iOS 7 上看起来像 X关闭按钮 的最接近的内置图标/图像是 UIBarButtonItemSystemStop 图像。这是documentation from Apple 的链接。下面是系统图像(我的图像可以使用 iOS 7 tint 参数着色):

您也可以创建自己的 - 在 Photoshop 中以图形方式或简单地使用文本(适合 iOS 7 设计)。只是一个幻想的 X 就可以了!即使是带有“X”的 UIBarButtonItem,然后将样式设置为 Done,也会给出加粗的 X。

另一个(私有)真实 iOS 示例来自 UIKit 的私有资源 - iAd 关闭按钮。尝试使用类似iOS Artwork Extractor 的应用程序来搜索和下载 UIKit 图像。 UIKit 中的图像归苹果所有;所以你需要创建自己的。您可以使用那里提供的图像作为灵感,然后在 Photoshop 中创建自己的东西。

【讨论】:

  • 我没有看到 UIBarButtonItemSystemStop?
  • @MikeFlynn 当您将UIBarButtonItem 类型设置为UIBarButtonItemSystemStop 时,它看起来只会出现在UIToolbar 上。而且 Apple 可能不会直接从 Xcode IB 提供 stop 项,您可能必须将其设置为 refresh 然后在代码中进行更改。
  • 将“停止”按钮用作“X”按钮是个坏主意;你正在耦合两个不同的用例,因为它们看起来很巧合——当 Apple 将它们的资产更改为“停止播放”字符串时会发生什么?然后你所有的“X”按钮会突然更新为一个不相关的字符串。
  • 好点@Zorayr - 他们可以更改任何iOS更新的停止图标,所以几年后应用程序可能会突然看起来很糟糕。最好避免这种情况。
【解决方案2】:

当然可以。

UIBarButtonItem *closeButton = [[UIBarButtonItem alloc] 
    initWithBarButtonSystemItem:(UIBarButtonSystemItemStop) 
                         target:self 
                         action:@selector(doneButtonTapped:)];

self.navigationItem.rightBarButtonItem = closeButton;

如图所示,它为您提供了一个内置的“X”按钮。

在 Xcode 5 和 iOS 7 下测试成功。

引用山姆的话:

即使是带有“X”的 UIBarButtonItem,然后将样式设置为 Done,也会给出加粗的 X。

虽然有效,但视觉效果难看,用户会感觉到。

【讨论】:

    【解决方案3】:

    字母 X 在视觉上并不吸引人,但符号 × 应该很好用。

    let buttonItem = UIBarButtonItem(title: "×", style: UIBarButtonItemStyle.Plain, target: nil, action: Selector(""))
    let font = UIFont.systemFontOfSize(40)
    buttonItem.setTitleTextAttributes([NSFontAttributeName: font], forState: .Normal)
    

    只有我无法正确垂直对齐.. 甚至没有:

    buttonItem.setTitlePositionAdjustment(UIOffsetMake(0, 10), forBarMetrics: .Default)
    

    【讨论】:

    • Goed zo Koen。 Gewoon simpel houden。这种方法的问题在于,如果您更改字体高度,它将不再与常规按钮对齐。我也无法改变这一点。有趣的问题本身。但是,× 符号在 UIButton 中非常有效。
    【解决方案4】:

    使用UIBarButtonItem 并设置它的样式UIBarButtonSystemItemStop 可以给你一个X 按钮。 但我不确定这是否是你想要的。

    【讨论】:

      【解决方案5】:

      unicode ╳ 字符很接近(在必须使用 UIButton 而不是 UIBarButtonItem 的情况下,因此不能使用此处列出的其他解决方案)。

      【讨论】:

      • 我用表情符号✕,看起来更近了。
      【解决方案6】:

      这是一个棘手的话题。理想情况下,您可能希望从The Noun Project 生成一个图标,以获得像素更完美的版本。

      我自己使用的是“添加联系人”按钮类型,然后使用此代码在加载时对其进行初始化以将其旋转 45 度:

      yourUILabel.transform = CGAffineTransform(rotationAngle: CGFloat.pi / 4)
      

      但在我的选择中,这不是一个理想的解决方案。

      希望这会有所帮助!

      【讨论】:

        【解决方案7】:

        我最终在 40.0 时喜欢 Gill Sans 中的小写“x”。它并不完美,但它可以解决问题。

        如果您搜索“X”,Xcode>Edit>Emojis 中还有一个带圆圈的 x 可以工作。

        【讨论】:

          【解决方案8】:

          iOS 13 +

          我们可以使用多种内置类型,包括close:

          UIButton(type: .close)
          

          有关按钮类型的更多信息,请查看: https://developer.apple.com/documentation/uikit/uibutton/buttontype

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-07-29
            • 2013-05-31
            • 1970-01-01
            • 1970-01-01
            • 2011-11-04
            • 2014-11-15
            相关资源
            最近更新 更多