Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UIButton default tap fade animation missing in UITableViewController custom cell

I have a custom cell with a few UIButtons in it. I have created Target Actions like so on the buttons:

[cell.customLocationButton addTarget:self action:@selector(customLocationButtonTap:) forControlEvents:UIControlEventTouchUpInside];

The actions work great though I don't see the default iOS fade animation on the UIButtons? Is there something I need to enable to get those too - I thought they were standard when using a UIButton from IB?

like image 561
wholly_cow Avatar asked Dec 10 '13 08:12

wholly_cow


1 Answers

Had the same problem. I could get the button to change color on highlight with setTitleColor:forState:, but it didn't fade from highlight to normal state like the other system buttons.

Turns out that's because my button was of type UIButtonTypeCustom. Switching it to UIButtonTypeSystem solved it for me. Please note I'm running this on iOS9.

Here's a snippet (Swift) that assumes self is a UIView or subclass:

let button = UIButton(type: .System)
button.setTitle("Title", forState: .Normal)
button.sizeToFit() // Sizes the button frame based on the title.
addSubview(button)
like image 156
ksm Avatar answered Oct 02 '22 10:10

ksm