[英]Setting bar button item image to system item programmatically—Swift
navigationItem.rightBarButtonItem = UIBarButtonItem(
barButtonSystemItem: UIBarButtonItem.SystemItem.add,
target: self,
action: #selector(yourMethod)
)
根據https://developer.apple.com/documentation/uikit/uibarbuttonitem/systemitem更改“添加”
對於使用 iOS 13 及更高版本的用戶,您可以使用 UIImage(systemName:) 屬性。 您可以使用Apple 的 SF Symbols 應用程序搜索 systemItem 名稱和相應的圖像。 這是使用停止 X 按鈕的示例:
barButtonItem.image = UIImage(systemName: "xmark")
您需要做的是有兩個按鈕(您可以通過編程或在界面構建器中設置它們),一個帶有圖像,另一個帶有停止行為。 當按下一個時,切換兩者的可見性。
我相信最好的選擇是以編程方式進行的,所以方法如下:
添加兩個欄按鈕項作為類成員:
private var itemOn: UIBarButtonItem!
private var itemOff: UIBarButtonItem!
然后在viewDidLoad
根據需要設置值(一個具有圖像,另一個具有帶有“X”的正常行為)。 然后將itemOn
按鈕添加到導航欄:
self.navigationItem.rightBarButtonItem = itemOn
請注意,兩者都應該具有相同的操作:
self.itemOn.target = self
self.itemOn.action = Selector("toggleVisibleButton:")
self.itemOff.target = self
self.itemOff.action = Selector("toggleVisibleButton:")
然后實現 toggleVisibleButton 函數:
func toggleVisibleButton(sender: UIBarButtonItem) {
if self.navigationItem.rightBarButtonItem == itemOn {
self.navigationItem.rightBarButtonItem = itemOff
// Do something with the button that has the image
} else {
self.navigationItem.rightBarButtonItem = itemOn
// Do something with the button that has the X
}
}
Swift 3 更新:
像這樣設置動作:
self.itemOn.action = #selector(self.toggleVisibleButton(sender:))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.