Я настроил свою кнопку. Я хочу изменить цвет текста кнопки и цвет рамки, когда я нажимаю на нее. Я переопределить метод UIButton setHighlighted следующим кодомИзменить цвет границы UIButton после нажатия
if (highlighted) {
self.layer.borderColor = [[UIColor colorWithRed:0.447 green:0.443 blue:0.443 alpha:1.000] CGColor];
self.titleLabel.textColor = [UIColor colorWithRed:0.447 green:0.443 blue:0.443 alpha:1.000];
}
else{
self.layer.borderColor = [[ UIColor whiteColor] CGColor];
self.titleLabel.textColor = [UIColor whiteColor];
}
Однако, это не будет работать, когда я просто нажмите на кнопку, и это изменит цвет, когда я сделал шаг на кнопке. Я попытался создать контрольную точку, чтобы проверить правильность ввода этой функции. Я заметил, что эти коды будут выполняться один раз, когда я просто нажимаю кнопку (запускается событием touchbegan), но выполняю ее дважды, когда я буду двигаться дальше (срабатывает touchbegan, touchmove event).
Я также пытаюсь добавить действие на уровне представления:
[downloadBtn addTarget:self action:@selector(allDownloadBtnClicked:) forControlEvents:UIControlEventTouchUpInside];
[downloadBtn addTarget:self action:@selector(allDownloadBtnHighlighted:) forControlEvents:UIControlEventTouchDown];
Но он все еще не может работать, как мой expection.
Любой может дать мне какое-либо предложение для достижения моей цели? Благодаря!
Вы установили self.layer.borderWidth = 2.0f для вашей кнопки? – Maddy
Я установил borderWidth в layoutSubviews. – kuokuo321