我的应用程序仅允许在横向方向上使用,并且它在风景中启动。因此,iPad横向时的左上角是(0,0),所以一切正常。
但是,当我拿起“touchesBegan”时......它无法正常工作。只有当我点击iPad的正确三分之二时,它才会接触到它。我知道它与方向有关,因为应用程序实际上只是空白屏幕,只有一个UIView,没有别的。这很简单。没有其他可能导致此问题的问题。
具体来说,如果我在touchesBegan函数中打印出x位置,并且如果使用左侧的主页按钮保持iPad,则宽度为1024.而1024-768为256.这正是x它开始感觉到触摸的位置。 x = 256左边的任何东西都不能感知触摸。
我该如何解决这个问题?
答案 0 :(得分:2)
检查支柱和弹簧,确保接触到的任何东西覆盖整个区域并锁定在四个侧面。
答案 1 :(得分:0)
以编程方式执行,
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { CGRect appFrame = [[UIScreen mainScreen] applicationFrame]; [self.view setFrame:CGRectMake(0.0f, 0.0f, appFrame.size.width, appFrame.size.height)]; return YES; // if you want to support only LANDSCAPE mode, use the line below /* return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft | UIInterfaceOrientationLandscapeRight); */ }
这会将视图设置为占据整个屏幕。
答案 2 :(得分:-1)
答案是,在定义UIWindow时,需要将其定义为
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
而不是严格的坐标。