屏幕底部的UIButton只是间歇性地突出显示

Aar*_*key 10 objective-c uibutton ios ios7

我的应用程序主视图底部有一些UIButton.当用户点击它们时,这些按钮会间歇性地突出显示,但总是会调用它们的目标方法.我发现它的控制中心的手势识别器妨碍了UIButton的突出显示.如果我将包含视图向上移动到屏幕中间,则一切都按设计运行.

该问题在此处报告https://devforums.apple.com/message/865922

作为一种解决方法,我尝试使用目标方法手动设置突出显示的状态.这似乎与允许UIButton正常突出显示具有相同的效果.

任何想法如何解决这个问题,而不重新设计这些控件,以显示在应用程序的其他地方?

也许我使用标准视图并手动添加所有触摸交互方法?我该怎么办?它甚至值得探索吗?

Aar*_*key 5

我找到了一个非常简单的解决方法。使用 .highlighted = YES 和 .selected = YES 等标准属性似乎在该底带内不起作用。在我们调用 final 方法之前,我没有设置突出显示状态,而是将按钮的背景图像设置为突出显示状态,并具有不可察觉的延迟。

[self.stopRecordingButton setImage:[UIImage imageNamed:@"stopRecordingButton"] forState:UIControlStateNormal];
[self.stopRecordingButton setImage:[UIImage imageNamed:@"stopRecordingButton-highlighted"] forState:UIControlStateHighlighted];
[self.stopRecordingButton addTarget:self action:@selector(stopRecordingDelay) forControlEvents:UIControlEventTouchUpInside];

-(void)stopRecordingDelay
{
    [self.stopRecordingButton setImage:[UIImage imageNamed:@"stopRecordingButton-highlighted"] forState:UIControlStateNormal];

    [self performSelector:@selector(stopRecording) withObject:nil afterDelay:0.025f];
}

- (void)stopRecording
{
    [self.stopRecordingButton setImage:[UIImage imageNamed:@"stopRecordingButton"] forState:UIControlStateNormal];

    //Do real stuff
}
Run Code Online (Sandbox Code Playgroud)