In my iPhone app, I have a UIButton which I have created in Interface Builder. I can successfully enable and disable it like this in my code ...
sendButton.e
Maybe you can subclass your button and override your isEnabled variable. The advantage is that you can reuse in multiple places.
override var isEnabled: Bool { didSet { if isEnabled { self.alpha = 1 } else { self.alpha = 0.2 } } }