簡體   English   中英

如何在 iOS 7+ 上更改 UIBarButtonItem 的背景顏色?

[英]How can I change the background color of a UIBarButtonItem on iOS 7+?

我想通過更改其背景顏色來指示打開或關閉特定UIBarButtonItem Mobile Safari 使用此功能來指示隱私瀏覽是打開還是關閉:

離開在

我該怎么做,因為UIBarButtonItem上沒有backgroundColor屬性?

創建一個UIButton並將其用作UIBarButtonItem的自定義視圖。 然后,在按鈕的圖層上設置backgroundColor

UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setTitle:@"Test"];
button.layer.backgroundColor = [UIColor redColor].CGColor;
button.layer.cornerRadius = 4.0;

UIBarButtonItem* buttonItem = [[UIBarButtonItem alloc] initWithCustomView:button];
self.toolbarItems = @[buttonItem];

你可以只使用兩個圖像。 一個用於選中,一個用於未選中

- (void)setBackgroundImage:(UIImage *)backgroundImage forState:(UIControlState)state barMetrics:(UIBarMetrics)barMetrics

上述功能可以幫助您完成此操作

斯威夫特 5 個回答

        let rightBarCancelButton = UIButton(frame: CGRect(x: 0, y: 0, width: 30, height: 30))
        let cancelImage = UIImage(systemName: "multiply")
        rightBarCancelButton.setImage(cancelImage, for: .normal)
        rightBarCancelButton.layer.cornerRadius = 15
        rightBarCancelButton.backgroundColor = UIColor.lightGray
        
        let rightBarButton = UIBarButtonItem(customView: rightBarCancelButton)
        navigationItem.rightBarButtonItem = rightBarButton

奇跡般有效!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM