ios - 推送到新 View 时 UIButton 未突出显示

标签 ios objective-c uinavigationcontroller uibutton

我有一个 UIButton,它应该在被选中时更改背景图像。 当按钮没有事件时,或者当事件在同一个 UIViewController 中时,一切正常。

但是如果按钮激活了对另一个 View 的推送,那么用户将永远不会看到在他按下按钮时应该出现的图像。

我可以使用 [NSTimer scheduledTimerWithTimeInterval:0.1 .... 来解决这个问题。

但我想知道是否有一种方法可以毫不拖延地做到这一点。

代码:

playBTN = [[UIButton alloc] initWithFrame:CGRectMake(100, 90, 121, 119)];
[playBTN setImage:[UIImage imageNamed:@"play_BTN"] forState:UIControlStateNormal];
[playBTN setImage:[UIImage imageNamed:@"play_BTN_press"] forState:UIControlStateHighlighted];
[playBTN setImage:[UIImage imageNamed:@"play_BTN_press"] forState:UIControlStateSelected];
[playBTN addTarget:self action:@selector(actPlay) forControlEvents:UIControlEventTouchDown];
[self.view addSubview:playBTN];


-(void)actPlay
{
    GamePlayViewController *game = [[GamePlayViewController alloc] initWithNibName:@"GamePlayViewController" bundle:nil];
    [self.navigationController pushViewController:game animated:YES];
}

最佳答案

通常按钮会连接到按钮上的 UIControlEventTouchUpInside 事件。这意味着当用户触摸按钮时按钮会高亮显示,如果用户误触摸按钮,用户可以将他/她的手指移到按钮外并释放而不会触发按钮。这也意味着触摸动画发生在操作方法触发之前。

我建议将您的操作连接到 UIControlEventTouchUpInside 事件

关于ios - 推送到新 View 时 UIButton 未突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22350476/

相关文章:

ios - 如果设备关闭,尝试在 IOS 应用程序中检索以前配对的蓝牙设备将不会响应失败

ios - 无法获得 wkWebView 的正确高度?

ios - 导出 Swift 框架以便在 Objective-C 中使用

objective-c - 理解@weakify 宏

ios - 隐藏导航 Controller 后退按钮 iOS 7

iphone - 带有模态 UIViewController 的透明背景

iphone - iPad App - 以编程方式更改语言

ios - 旋转设备时是否可以更改 View ?

ios - 当第二个电话打到我的 iOS voip 应用程序时,如何播放调用等待提示音?

ios - 如何禁用某些 ViewController 的导航栏