2011-12-11 2 views
1

iPad 5.0에서 UISwitch 컨트롤을 사용하면 모든 것이 잘됩니다. 하지만 iPad 4.3에서 앱을 실행하면 컨트롤이 왼쪽으로 이동합니다. 이 샘플 UISwitch 컨트롤이 iPad 4.3 시뮬레이터에서 변경되었습니다.

enter image description here

모두 컨트롤 같은 자동 크기 마스크 콘텐츠 모드를 갖는다.
배포 대상 : 4.3
기본 SDK 5.0

누군가 내 문제를 설명 할 수 있습니다.

+0

이 항목을 앱에 추가하는 방법과시기 및 UISwitch의 다른 설정을 추가 할 수 있습니까? –

+0

이 샘플에서는 Interface Builder에서 컨트롤을 추가하고 설정을 터치하지 않았습니다. – Victor

답변

1

글쎄, 그것은 꽤 ... 두 UISwitch 같은 너비가 없습니다.
는 뭔가 시도하는이 코드에 사용

CGRect aRect = self.mySwitch.frame; 
aRect.origin.x = 20; 
aRect.origin.y = 20; 
self.mySwitch.frame = aRect; 

을 그리고 나에게 모두 시뮬레이터의 오른쪽 위치를 제공합니다.
이렇게 설명하면 코드의 추악한 부분없이이를 해결할 수 있습니다.


NSLog에서 얻은 중심 값과 원점 값입니다.

ipad iOS 5 
LOG: Center of sw1 x == 60 : y == 33.50 
LOG: Origin of sw1 x == 20 : y == 20.00 
ipad iOS 4.3 
LOG: Center of sw1 x == 52 : y == 33.50 
LOG: Origin of sw1 x == 5 : y == 20.00 

아마 애플의 코드는 이렇게 정확하게 그것의 스위치 표시를했을에서 iOS 5 이전에 개발 된 응용 프로그램을 작성하지만, 역 ... 난 더 나은 설명을 볼 수 있도록 노력하겠습니다
사실이 아니다.

+0

예, iOS 4.3 및 iOS 5.0의 컨트롤 폭이 다릅니다. 하지만 하위 호환성이없는 이유는 무엇입니까? 그리고 나는 다른 누군가가이 문제에 관해 토론 한 것을 발견하지 못했습니다. – Victor

+0

이 문제도 있습니다. 스위치를 오른쪽으로 정렬 한 이유는 무엇입니까? 심지어 xib에 고정 된 상단 및 왼쪽으로 설정 한 경우에도 마찬가지입니다. – jowie

관련 문제