2017-11-24 2 views
-3

다양한 장치에서 게임을 테스트하기 시작했습니다. 모든 장치는 iPhone 8 Plus를 제외하고 잘 작동합니다. 다른 장치 및 시뮬레이터 (시뮬레이션 된 iPhone 8 Plus도)에서 버튼을 볼 수 있지만 iPhone 8 Plus에서는 그렇지 않습니다. 왜 이런 일이 일어나는지 모른다.iPhone 8 Plus에서 버튼이 보이지 않습니다.

첫 번째 그림은 시뮬레이터 8 Plus 화면을 보여주고, 두 번째 그림은 장치 화면을 보여줍니다. 나는 그 문제의 원인을 발견 올바른 방향으로 나를 지적 V12에

proceedButton = [[SelectionButton alloc] initWithFrame:CGRectMake([[UIScreen mainScreen] bounds].size.width/2.0 - 60.00, [[ScreenSize sharedSize] yValue] + 10.0 + [[ScreenSize sharedSize] gameFieldSize], 120.0, [[ScreenSize sharedSize] opButtonSize]) andText:NSLocalizedString(@"DONEKey", @"Done")]; 
[proceedButton addTarget:self action:@selector(createPlayer) forControlEvents:UIControlEventTouchUpInside]; 
[proceedButton addTarget:self action:@selector(changePathColor:) forControlEvents:UIControlEventTouchDown]; 
[self.view addSubview:proceedButton]; 

On Simulator

On device

+0

왜 자동 레이아웃으로 작업하지 않습니까? – LinusGeffarth

+0

저는 거의 2 년 전에 프로젝트를 시작 했으므로 사용하지 않았습니다. 이제 13K 개의 코드 문자열이 있습니다. 나는 그것을 바꾸는 것이 좋은 생각이라고 생각하지 않는다. 그게 이유라고 생각하니? 하지만 시뮬레이터에서 작동합니다. – Palindrome

+1

시뮬레이터와 실제 장치 모두에서 프레임 값을 인쇄 했습니까? 내 질문에 프레임 콘솔을 추가해야한다고 생각합니다. – Rivendell

답변

0

감사 :

여기에 코드입니다. 서로 다른 두 가지

문제

CGSize screenSize = [[UIScreen mainScreen] bounds].size; 

CGSize screenSize = [[UIScreen mainScreen] nativeBounds].size; 

이었다 있습니다.

처음에는 시뮬레이터에서 작동하고 실제 장치에서 작동하지 않는 이유를 알지 못했습니다. 그러나 장치와 시뮬레이터의 프레임 값을 인쇄 할 때 시뮬레이터의 값이 iPhones 6,7,8의 값과 같고 실제 iPhone 8 Plus의 값이 2201과 같음을 알았습니다. 그래서 나는 항상 잘못된 결과를 얻고있었습니다.

This link helped a lot, especially some of the comments

관련 문제