簡體   English   中英

Swift如何更改背景顏色和按鈕邊框

[英]Swift how change the background color and button border

我有功能:

func setSelectedSystemButtonColor(hoverButton: Int){
    let defaultColor = UIColor(red: 0/255, green: 62/255, blue: 132/255, alpha: 1)
    let selectedColor = UIColor(red: 251/255, green: 186/255, blue: 8/255, alpha: 1)

    homeBtn.backgroundColor = defaultColor
    productsBtn.backgroundColor = defaultColor
    calculatorBtn.backgroundColor = defaultColor
    conceptBtn.backgroundColor = defaultColor
    tipBtn.backgroundColor = defaultColor

    if hoverButton == 1 {
        homeBtn.backgroundColor = selectedColor
        homeBtn.layer.borderColor = defaultColor.cgColor
    }
    if hoverButton == 2 {
        productsBtn.backgroundColor = selectedColor
        homeBtn.layer.borderColor = defaultColor.cgColor
    }
    if hoverButton == 3 {
        calculatorBtn.backgroundColor = selectedColor
        homeBtn.layer.borderColor = defaultColor.cgColor
    }
    if hoverButton == 4 {
        conceptBtn.backgroundColor = selectedColor
        homeBtn.layer.borderColor = defaultColor.cgColor
    }
    if hoverButton == 5 {
        tipBtn.backgroundColor = selectedColor
        homeBtn.layer.borderColor = defaultColor.cgColor
    }
}

此功能旨在:a)將顏色重置為默認值,b)設置所選按鈕的背景顏色+添加邊框。

顏色正確更改,但是不顯示邊框。 邊框將在5px上

你忘了設置UIButton邊框

button.layer.borderWidth = 0.8

您應該這樣做:

  homeBtn.layer.borderWidth = 5
  homeBtn.layer.borderColor = defaultColor.cgColor

而不是簡單地做:

  homeBtn.layer.borderColor = defaultColor.cgColor

僅替換此行

let defaultColor = UIColor(red: 0.0/255.0, green: 62.0/255.0, blue: 132.0/255.0, alpha: 1)

let selectedColor = UIColor(red: 251.0/255.0, green: 186.0/255.0, blue: 8.0/255.0, alpha: 1)

為了顯示按鈕邊框,首先必須顯式指定homeBtn邊框寬度,如下所示:

homeBtn.layer.borderWidth = 5.0

那么只有您可以像這樣向homeBtn邊框圖層添加顏色:

homeBtn.layer.borderColor = defaultColor.cgColor

您可能需要重置所有按鈕的邊框寬度。

func setSelectedSystemButtonColor(hoverButton: Int){
    let defaultColor = UIColor(red: 0/255, green: 62/255, blue: 132/255, alpha: 1)
    let selectedColor = UIColor(red: 251/255, green: 186/255, blue: 8/255, alpha: 1)

    homeBtn.backgroundColor = defaultColor
    productsBtn.backgroundColor = defaultColor
    calculatorBtn.backgroundColor = defaultColor
    conceptBtn.backgroundColor = defaultColor
    tipBtn.backgroundColor = defaultColor

    // reset border width of all buttons
    homeBtn.layer.borderWidth = 0.0
    productsBtn.layer.borderWidth = 0.0
    calculatorBtn.layer.borderWidth = 0.0
    conceptBtn.layer.borderWidth = 0.0
    tipBtn.layer.borderWidth = 0.0

    // set border width for selected button
    hoverButton.layer.borderWidth = 1.0

    if hoverButton == 1 {
        homeBtn.backgroundColor = selectedColor
        homeBtn.layer.borderColor = defaultColor.cgColor
    }
    if hoverButton == 2 {
        productsBtn.backgroundColor = selectedColor
        homeBtn.layer.borderColor = defaultColor.cgColor
    }
    if hoverButton == 3 {
        calculatorBtn.backgroundColor = selectedColor
        homeBtn.layer.borderColor = defaultColor.cgColor
    }
    if hoverButton == 4 {
        conceptBtn.backgroundColor = selectedColor
        homeBtn.layer.borderColor = defaultColor.cgColor
    }
    if hoverButton == 5 {
        tipBtn.backgroundColor = selectedColor
        homeBtn.layer.borderColor = defaultColor.cgColor
    }
}

暫無
暫無

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

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