gpt4 book ai didi

iOS 7 UI 转换问题 : Touch events ignored at bottom of screen

转载 作者:技术小花猫 更新时间:2023-10-29 11:25:13 25 4
gpt4 key购买 nike

我目前正在解决一个旧应用程序(构建于 iOS 5 时代)中的一个问题,即屏幕底部的按钮触摸事件被忽略。我可以通过创建一个新项目、删除 Storyboard (和 Info plist 中的引用)并在 didFinishLaunchingWithOptions 中执行以下操作来重现此问题(我知道这不是正确的方法,但这个应用程序我我正在处理具有类似的设置)

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:CGRectMake(0, 0, 768, 1024)];
self.window.screen = [UIScreen mainScreen];

UIViewController *vc = [[UIViewController alloc] init];
vc.view.backgroundColor = [UIColor yellowColor];
self.window.rootViewController = vc;

UIButton *test = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[test setTitle:@"Hey" forState:UIControlStateNormal];
[test setBackgroundColor:[UIColor whiteColor]];
test.frame = CGRectMake(0, 824, 200, 200);
[vc.view addSubview:test];

[self.window makeKeyAndVisible];

return YES;
}

一旦我运行这个应用程序,“嘿”按钮只能通过按下它的上半部分来工作。我感觉它与 iOS 7 状态栏有关,以及 UI 现在如何位于其下方而不是下方。我尝试调整窗口的边界,但这没有帮助。我已经尝试了各种方法来让这个按钮起作用,但唯一起作用的是隐藏状态栏。

有人知道如何让该按钮在这种情况下工作吗?

最佳答案

我不认为事件被忽略了——我认为这只是在 iOS7 的屏幕底部没有显示按钮高亮反馈

使用您的示例,将其添加到 AppDelegate.m 中的 didFinishWithLaunching

[test addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];

然后将这个方法添加到AppDelegate.m

-(void)buttonPressed:(id)sender{
NSLog(@"hey!");
}

点击按钮的底部边缘,即使未显示可见反馈,您也会看到调用的操作方法。

奇怪的是,如果您在任何方向按下并拖动,视觉反馈都会正确显示。

关于iOS 7 UI 转换问题 : Touch events ignored at bottom of screen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21317575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com