【问题标题】:How to add / use default icons to navigation bar如何向导航栏添加/使用默认图标
【发布时间】:2015-12-10 01:17:59
【问题描述】:

我想使用一些默认的iOS icons,即

在导航栏中。
基本上我不知道如何调用该项目的图像(直接来自本机库 - 我知道如何下载它并放置为自定义图像:)):

   var myButton:UIButton = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton
   myButton.addTarget(self, action: "reload", forControlEvents: UIControlEvents.TouchUpInside)
   myButton.setImage(???, forState: <#UIControlState#>)

【问题讨论】:

    标签: ios swift ios-icons


    【解决方案1】:

    你可以这样使用UIBarButtonSystemItem

    let button = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Refresh, target: self, action: "someAction")
    navigationItem.leftBarButtonItem = button
    

    leftBarButtonItem 的结果:

    如果你想把它设置在右侧,你可以使用这个代码:

    navigationItem.rightBarButtonItem = button
    

    rightBarButtonItem 的结果:

    【讨论】:

    • 很高兴为您提供帮助..:)
    【解决方案2】:

    Swift:这些是最常用的选项:

    使用具有原始颜色的自定义图像:

    let customImageBarBtn1 = UIBarButtonItem(
        UIImage(named: "someImage.png").withRenderingMode(.alwaysOriginal),
        style: .plain, target: self, action: #selector(handleClick))
    

    使用带有色调颜色的自定义图像:

    let customImageBarBtn2 = UIBarButtonItem(
        UIImage(named: "someImage.png").withRenderingMode(.alwaysTemplate),
        style: .plain, target: self, action: #selector(handleClick))
    

    或使用系统提供的按钮:

    let systemBarBtn = UIBarButtonItem(
        barButtonSystemItem: .search,
        target: self, action: #selector(handleClick))
    

    然后将这些按钮中的任何一个添加到navigationItem:

    navigationItem.leftBarButtonItems = [customImageBarBtn1, customImageBarBtn2]
    navigationItem.rightBarButtonItems = [systemBarBtn]
    // OR you can use this if there's only one item.
    navigationItem.rightBarButtonItem = systemBarBtn
    

    对于自定义图像:作为起始尺寸,22ptx22pt 图像适用于默认的 iPhone 导航栏尺寸。

    【讨论】:

    • 谢谢。太简单。然后只需添加一个func handleClick
    【解决方案3】:

    在 Swift 4.3 中

    let btnRefresh = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.refresh, target: self, action: #selector(targeted function to invoke))
    
       //If you want icon in left side
        navigationItem.leftBarButtonItem = btnRefresh
    
       //If you want icon in right side
        navigationItem.rightBarButtonItem = btnRefresh
    

    【讨论】:

      猜你喜欢
      • 2016-12-11
      • 2021-04-09
      • 1970-01-01
      • 2018-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多