Ну, это не красиво ... оба 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
Возможно, код от Apple написан так, чтобы приложение, которое было разработано до iOS 5, имело бы правильное отображение переключателя, но обратное неверно ...
Я надеюсь увидеть лучшее объяснение.