2017-01-05 4 views
-2

Я знаю, что есть много ответов, связанных с этой темой, но я пробую все и просто не понимаю, что происходит в коде. Я просто добавляю кнопку в верхнюю панель и пытаюсь нажать, но нет триггера анимации.UIButton не подсвечивается при нажатии

Смотреть это видео: http://sendvid.com/35e7za0p

Вот мой код

if rightFisrtBtn != nil { 
    btnfirst = UIButton(type: UIButtonType.custom) 
    btnfirst.tag = tagTopBar.btnfirst.rawValue 
    btnfirst.translatesAutoresizingMaskIntoConstraints = false 
    btnfirst.imageView?.contentMode = UIViewContentMode.scaleAspectFill 
    btnfirst.titleLabel?.font = fontWithSize 


    if rightFisrtBtn! is String { 
     btnfirst.setTitle(rightFisrtBtn as? String, for: .normal) 
     btnfirst.setTitleColor(UIColor.black, for: .normal) 
     btnfirst.setTitleColor(UIColor.white, for: .highlighted) 

     topView.addSubview(btnfirst) 

     topView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:[btnfirst(width)]-[btnSecond]", options: [], metrics: ["width":btnfirst.intrinsicContentSize.width + 10.0], views: ["btnfirst":btnfirst,"btnSecond":btnSecond])) 

     topView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-(25.0)-[btnfirst]-(gap)-|", options: [], metrics: ["gap":10.0], views: ["btnfirst":btnfirst])) 

    } else if rightFisrtBtn! is UIImage { 
     btnfirst.setImage(rightFisrtBtn as? UIImage, for: .normal) 
     btnfirst.contentHorizontalAlignment = UIControlContentHorizontalAlignment.center 
     topView.addSubview(btnfirst) 

     topView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:[btnfirst(width)]-[btnSecond]", options: [], metrics: ["width":btnfirst.imageView?.image?.size], views: ["btnfirst":btnfirst,"btnSecond":btnSecond])) 

     topView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-(25.0)-[btnfirst]-(gap)-|", options: [], metrics: ["gap":5.0], views: ["btnfirst":btnfirst])) 
    } 

    btnfirst.addTarget(self, action: #selector(self.btnTopbarFilter_Clicked(_:)), for: .touchUpInside) 

} 
+0

Используйте ** btnfirst.showsTouchWhenHighlighted = true ** для выделения касания. –

+0

@RamkrishnaSharma спасибо за ответ, но мне нужно по умолчанию выбранное событие, которое появляется, когда есть изображение не TouchWhenHighlighted –

+0

«Я просто добавляю кнопку в верхнюю панель» Это не имеет смысла. Вы не можете поместить UIButton прямо в верхнюю панель. И я не вижу никакого кода, где вы делаете что-либо с помощью 'btnfirst'. Покажите, как он попадает в интерфейс, пожалуйста. – matt

ответ

-1

Если я мог бы понять ваш запрос, вы хотите, атрибуты для выделенного состояния кнопки появляются при нажатии на кнопку.

В этом случае, при осуществлении целевых действий по кнопке использовать свойство IsSelected экземпляра из UIButton:

FUNC btnTopbarFilter_Clicked (_ Отправитель: UIButton) {

sender.isSelected = !sender.isSelected 

}

Смежные вопросы