UIB кнопка выделена не работает, когда я коснулся - PullRequest
0 голосов
/ 03 июня 2018

Я пытался установить изображение, когда я коснулся, как этот код.

Первая попытка

self.penNameAsImageUploadButton.setImage(#imageLiteral(resourceName: "btn_copyright_photo_upload_highligted"), for: .highlighted)

Вторая попытка - создание фонового изображения в качестве цвета фона.

extension UIButton {
func setBackgroundColor(color: UIColor, forState: UIControlState) {

    UIGraphicsBeginImageContext(CGSize(width: 1, height: 1))
    UIGraphicsGetCurrentContext()!.setFillColor(color.cgColor)
    UIGraphicsGetCurrentContext()!.fill(CGRect(x: 0, y: 0, width: 1, height: 1))
    let colorImage = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

    self.setBackgroundImage(colorImage, for: forState)
}
}

self.penNameAsImageUploadButton.setBackgroundColor(color: UIColor.sqBlack.withAlphaComponent(0.15), forState: .highlighted)

Вторым способом хорошо работает другая кнопка.но эта кнопка не работает.

Это работало, если я коснулся в течение 2 секунд.Если я коротко нажал кнопку, действие работало хорошо, но изображение не изменилось.Я установил некоторые параметры, такие как boderColor и тень в коде.это влияет на выделение состояния?

Ответы [ 2 ]

0 голосов
/ 03 июня 2018

Мне надоело менять фон, когда нажимали кнопку.И затем кнопка цвет фона обратно к исходному цвету через 1 секунду.Я не уверен, хороший способ сделать.Но это единственный способ изменить цвет, когда я коснулся.

@IBAction func reviewAppstoreDidTap(_ sender: UIButton) {

    self.reviewAppstoreButton.backgroundColor = UIColor.colorFromRGB(0x1866cb)

    DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(1))
    {
        self.reviewAppstoreButton.backgroundColor = UIColor.sqBlue2Appstore

    }
}
0 голосов
/ 03 июня 2018

Ваш первый код будет работать:

1: установить изображение для .highlighted:

self.penNameAsImageUploadButton.setImage(#imageLiteral(resourceName: "btn_copyright_photo_upload_highligted"), for: .highlighted)

2: в методе действия вам необходимо установить isHighlighted true и false соответственно:

self.penNameAsImageUploadButton.isHighlighted = true

или

self.penNameAsImageUploadButton.isHighlighted = false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...