标签: uibarbuttonitem

更改完成UIBarButtonItem的背景图像

我想创建一个自定义UIBarButtonItem来表示完成按钮.我希望能够将应用程序国际化,因此我希望文本可以直接编辑.考虑到"完成"标签的不同长度,我设计了一个可伸缩的图像.是否可以直接更改默认编辑按钮背景或是否需要自定义UIBarButtonItem?如果是这样,根据标签的长度动态调整背景stretchchableImage的方法是什么?

iphone uiimage uibarbuttonitem

1
推荐指数
1
解决办法
5329
查看次数

在UINavigationbar中显示类似计数器的通知徽章

我要求在iPhone导航栏中显示待处理通知的数量.外观应该与通知徽章的外观相似 - 但这些不是APNS通知.它们是从具有类似目的的私有服务器发送的.

我尝试UIBarButtonItem在我的位置添加一个右/左按钮(),UINavigationbar但它看起来外观很僵硬.我无法设置其宽度,字体等.请参阅我的代码:

  self.notifButton = [[UIBarButtonItem alloc] initWithTitle:@"0" style:
                    UIBarButtonItemStyleBordered target:self action:@selector(TouchNotif)];

 NSMutableArray *items = [[NSMutableArray alloc] init];

 [items addObject:self.notifButton];
 self.navigationItem.rightBarButtonItems = items;
Run Code Online (Sandbox Code Playgroud)

由于其他2项也添加到items数组中,因此navbar混乱.他们的字体,宽度等我无法玩,或者我不知道应该如何创建它们.

我的问题:

1)在导航栏右侧区域中容纳至少3个项目的正确方法是什么?我问这个是因为我没有找到一种方法来玩UIButtons我使用的宽度和字体.

2)如果我想为我的通知按钮设置自定义外观(就像通知徽章一样) - 是否有任何指示我如何制作它?使用哪种控件,如何设置其允许的框架和字体UINavigationBar

请帮忙.

iphone uinavigationbar uibarbuttonitem ios

1
推荐指数
1
解决办法
6099
查看次数

UIBarButtonItem 着色颜色与设备上的颜色不同

我至少有一个UIBarButtonItem's在每一个UIViewController在我的项目,一切都在一个UINavigationController和UINavigationBar是蓝色的,UIBarButtonItem's应该是白色的。

在模拟器中它们是白色的……但在设备中它们是浅灰色的,如下图所示:

模拟器 模拟器

设备 设备

它们运行完全相同的代码和完全相同的 ios 版本ios 8.1

我目前正在将情节提要中的色调颜色设置为白色,但我也尝试过:

// In appdelegate
UINavigationBar.appearance().barTintColor = UIColor(hex: 0x4a9bcb, alpha: 1.0)
UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName:UIFont(name: "FuturaLT-Bold", size: 16)!, NSForegroundColorAttributeName:UIColor(white: 1.0, alpha: 1.0)]
UIBarButtonItem.appearance().tintColor = UIColor.whiteColor()

// In map viewcontroller viewDidLoad 
self.edgesForExtendedLayout = UIRectEdge.None
self.navigationController?.navigationBar.translucent = false
Run Code Online (Sandbox Code Playgroud)

这给出了相同的结果。

请帮助我了解发生了什么。

iphone uibarbuttonitem uicolor ios swift

1
推荐指数
1
解决办法
449
查看次数

选择或突出显示时全局更改 UIBarButtonItem 文本颜色

UIToolbar(在我的里面UINavigationController)有一些UIBarButtonItems 。

工具栏为blue( isTranslucent = false),按钮为white。默认的高亮颜色是gray,它看起来很难看。

我发现的唯一解决方案是更改触摸UIBarButtonItem事件。但我有很多s,在每个 s 中编写大量代码非常烦人。tintColor@IBActionUIBarButtonItem@IBAction

您是否知道如何全局更改它,或者至少知道如何子类化UIBarButtonItem以定义一次并在任何地方使用该类?

我使用 swift 3,部署目标是 iOS 9+

uibarbuttonitem ios swift

1
推荐指数
1
解决办法
2647
查看次数

以编程方式添加到导航栏的 UIBarButtonItem 无法调用选择器,而添加到工具栏的按钮却可以

我有一个有点令人困惑的问题。在我的应用程序中,我有一个工具栏,可以以编程方式换出按钮并正确调用关联的选择器。但是,当我将相同的技术应用于导航栏上的按钮时,它无法调用选择器。以下示例代码包含 2 组按钮(一组用于导航,一组用于工具栏)。尽管相同,但导航栏按钮上的选择器从未被调用。

import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var toolbar: UIToolbar!

    let navCancelButton = UIBarButtonItem(barButtonSystemItem: .cancel,
                                          target: self,
                                          action: #selector(toggleDelete))
    let navTrashButton = UIBarButtonItem(barButtonSystemItem: .trash,
                                         target: self,
                                         action: #selector(toggleDelete))

    let toolbarCancelButton = UIBarButtonItem(barButtonSystemItem: .cancel,
                                              target: self,
                                              action: #selector(toggleDelete))
    let toolbarTrashButton = UIBarButtonItem(barButtonSystemItem: .trash,
                                             target: self,
                                             action: #selector(toggleDelete))

    var isDeleting = false {
        didSet {
            navigationItem.rightBarButtonItem = isDeleting ? navCancelButton : navTrashButton
            toolbar.items = isDeleting ? [toolbarCancelButton] : [toolbarTrashButton]
        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        isDeleting = …
Run Code Online (Sandbox Code Playgroud)

uinavigationcontroller uibarbuttonitem ios swift

1
推荐指数
1
解决办法
370
查看次数

iOS 13 中主题更改时 UIBarButton 图标不会更改

我在 iOS 13 上遇到一个问题,当UIBarButton我切换 iOS 主题时图标不会改变。

我为深色和浅色主题创建了两组图像,并将它们添加到 xcassets 中,如下图所示。

xcassets 配置

当我更改主题时,该主题的图像不会反映,但如果我点击它,它就会改变。

步骤和屏幕录制。

随着继续

  1. 在深色模式下打开 VC1
  2. 切换到浅色(图标应有黑色边框)
  3. 切换到深色(图标没有变化)
  4. 更改为浅色(图标没有变化)
  5. 点击图标,转到 VC2
  6. VC2 显示其栏按钮以及带有黑色边框的正确主题图标
  7. 点击 VC2 栏按钮
  8. VC1 显示正确的带有黑色边框的主题图标

我尝试创建新的栏按钮并分配相同的图标而无需继续。当主题改变时,图标也不会改变,当我点击它时,图标也不会改变。

下面是屏幕录制。

没有继续

可能是什么原因?

uibarbuttonitem ios ios13 ios-darkmode

1
推荐指数
1
解决办法
926
查看次数

在导航栏中将 Lottie 动画设置为 UIBarbuttonitem swift

我尝试在 UInavigation 控制器的导航栏按钮中设置 lottie 动画,但我不知道如何将动画设置为 UIbarButtons

uinavigationcontroller uibarbuttonitem swift lottie

1
推荐指数
1
解决办法
495
查看次数

如何有条件地将尾随导航栏项添加到将在 NavigationView 中显示的 SwiftUI 视图?

要将 navigationBarItem 添加到 SwiftUI 视图,我们可以使用类似于以下的代码:

NavigationView {
    Text("SwiftUI")
        .navigationBarTitle("Welcome")
        .navigationBarItems(trailing: Button("Help") {
                    print("Help tapped!")
           }
        )
    }
Run Code Online (Sandbox Code Playgroud)

如何有条件地做到这一点。假设数组为空,则显示“帮助”栏按钮,否则不显示栏按钮。

uibarbuttonitem ios swift swiftui ios-navigationview

1
推荐指数
1
解决办法
1409
查看次数

iOS:向条形按钮发送多个动作

在我的应用程序中,我希望自定义一个当前显示用户位置的条形按钮,这样如果用户点击并按住它,则会显示带有其他信息的子视图.但似乎我只能发一个动作.这是绝对的情况还是有一种方法可以让我有多个动作?我知道有一个子类来启用用户定位位置(就像在地图应用程序中一样) - 我能以某种方式实现类似的功能吗?

uibarbuttonitem ios

0
推荐指数
1
解决办法
1524
查看次数

如何将边框和角半径应用于UIBarButtonItem?

我已经以编程方式创建了一个工具栏,我已经添加了一个UIBarButtonItem.

这是目前的样子:

的UIBarButtonItem

我希望按钮有一个边框和一个角半径(弯角).如何实施?

UIBarButtonItem实现代码:

let okBarBtn = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: self, action: "donePressed:")
Run Code Online (Sandbox Code Playgroud)

uibarbuttonitem swift

0
推荐指数
1
解决办法
3843
查看次数