Question

In my program, I have a UIButton declared programmatically as a property of a UIVIewController. I have set it up to send actions when the user triggers the touchUpInside event, as shown here:

[restartButton addTarget:self action:@selector(handleRestart) forControlEvents:UIControlEventTouchUpInside]; where restartButton is the name of the UIButton.

When I enter UIControlEventTouchDown in the forControlEvents parameter, it works fine. However, UIControlEventTouchUpInside simply does not work. Does anybody know why this is?

Était-ce utile?

La solution

You may want to check the restartButton.bounds. You may simply have it set to a size of zero causing UIControlEventTouchUpInside never to occur. Best way of checking for it is to add borders to layer.

[restartButton.layer setBorderWidth:1.0f];
[restartButton.layer setBorderColor:[UIColor redColor].CGColor];

Don't forget to #import <QuartzCore/QuartzCore.h> for above to work

Autres conseils

Checkout this question and answer: https://stackoverflow.com/a/11667958/607730. The parent view had a UITapGestureReconizer on it that was intercepting the TouchUpInside event but allowign the touch down even through.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top