我想创建一个自定义UIBarButtonItem来表示完成按钮.我希望能够将应用程序国际化,因此我希望文本可以直接编辑.考虑到"完成"标签的不同长度,我设计了一个可伸缩的图像.是否可以直接更改默认编辑按钮背景或是否需要自定义UIBarButtonItem?如果是这样,根据标签的长度动态调整背景stretchchableImage的方法是什么?
我要求在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?
请帮忙.
我至少有一个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)
这给出了相同的结果。
请帮助我了解发生了什么。
我UIToolbar(在我的里面UINavigationController)有一些UIBarButtonItems 。
工具栏为blue( isTranslucent = false),按钮为white。默认的高亮颜色是gray,它看起来很难看。
我发现的唯一解决方案是更改触摸UIBarButtonItem事件。但我有很多s,在每个 s 中编写大量代码非常烦人。tintColor@IBActionUIBarButtonItem@IBAction
您是否知道如何全局更改它,或者至少知道如何子类化UIBarButtonItem以定义一次并在任何地方使用该类?
我使用 swift 3,部署目标是 iOS 9+
我有一个有点令人困惑的问题。在我的应用程序中,我有一个工具栏,可以以编程方式换出按钮并正确调用关联的选择器。但是,当我将相同的技术应用于导航栏上的按钮时,它无法调用选择器。以下示例代码包含 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) 我在 iOS 13 上遇到一个问题,当UIBarButton我切换 iOS 主题时图标不会改变。
我为深色和浅色主题创建了两组图像,并将它们添加到 xcassets 中,如下图所示。
当我更改主题时,该主题的图像不会反映,但如果我点击它,它就会改变。
步骤和屏幕录制。
我尝试创建新的栏按钮并分配相同的图标而无需继续。当主题改变时,图标也不会改变,当我点击它时,图标也不会改变。
下面是屏幕录制。
可能是什么原因?
我尝试在 UInavigation 控制器的导航栏按钮中设置 lottie 动画,但我不知道如何将动画设置为 UIbarButtons
要将 navigationBarItem 添加到 SwiftUI 视图,我们可以使用类似于以下的代码:
NavigationView {
Text("SwiftUI")
.navigationBarTitle("Welcome")
.navigationBarItems(trailing: Button("Help") {
print("Help tapped!")
}
)
}
Run Code Online (Sandbox Code Playgroud)
如何有条件地做到这一点。假设数组为空,则显示“帮助”栏按钮,否则不显示栏按钮。
在我的应用程序中,我希望自定义一个当前显示用户位置的条形按钮,这样如果用户点击并按住它,则会显示带有其他信息的子视图.但似乎我只能发一个动作.这是绝对的情况还是有一种方法可以让我有多个动作?我知道有一个子类来启用用户定位位置(就像在地图应用程序中一样) - 我能以某种方式实现类似的功能吗?
我已经以编程方式创建了一个工具栏,我已经添加了一个UIBarButtonItem.
这是目前的样子:
我希望按钮有一个边框和一个角半径(弯角).如何实施?
UIBarButtonItem实现代码:
let okBarBtn = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: self, action: "donePressed:")
Run Code Online (Sandbox Code Playgroud) uibarbuttonitem ×10
ios ×7
swift ×6
iphone ×3
ios-darkmode ×1
ios13 ×1
lottie ×1
swiftui ×1
uicolor ×1
uiimage ×1