2015-02-26 2 views
0

Fyi, я новичок в программировании Xcode для iOS. Я написал простую игру и протестировал на реальном iPhone 4s и работает. Поскольку у меня есть только iPhone 4s, я могу только моделировать свою игру с симулятором iOS для более высокой версии iPhone. Проблема, которую я наблюдал для более высокой версии iPhone, заключается в том, что изображение масштабируется, поэтому местоположение касания больше не действует.О касательной координате между iPhone 4s, 5, 6 и 6+

PS: Я не использую никаких UIButton. Я использую CGRectMake, чтобы создать кнопку, а затем объявить позицию касания, как показано ниже.

-(void) touchBegan: (CGPoint) p 
{ 
    if (p.x > 0 && p.x < 100 && p.y > 0 && p.y < 30) myscore = 1; 
} 

Таким образом, мой вопрос: будет ли отображаемое в симуляторе перемещение касания одинаковым на самом устройстве? Если да, значит, мне нужно объявить границу касания для каждой версии iPhone?

ответ

0

Да, это произойдет в устройстве. По мере того как вы комментируете, вы можете установить границы для каждого другого устройства или (я думаю, проще) использовать UIButton. Почему бы вам не использовать его? Любая особая причина?

+0

Привет христианские, Спасибо за ваш ответ. Я видел некоторый пример UIButton в другом форуме переполнения стека, и они также используют CGRectMake для определения привязки. Не будет ли такая же проблема, как указано выше? Пример кода: button.frame = CGRectMake (80.0, 210.0, 160.0, 40.0); –

+0

Пройдя еще несколько форумов, я считаю, что мне нужно переопределить положение касания для каждого размера экрана. Я искал более простой выход, но похоже, что это единственный способ. –

1

Если вы хотите исправить положение касания независимо от используемого устройства, тем проще, как было сказано ранее, щелкнуть и перетащить кнопку на раскадровке и использовать автоматическую компоновку, чтобы зафиксировать местоположение button Например, вы можете установить кнопку 10px вниз и 10px справа от левого верхнего угла от содержащего представления, и она появится в том же месте, независимо от используемого устройства. Но я уверен, что есть способ, чтобы программно сделать то же самое

PS: хотел, чтобы оставить комментарий, а не ответ, но у меня не хватает респ ...

+0

Это скорее похоже на ответ, а не комментарий. Согласитесь, вероятно, будет лучше с некоторым примером кода, но это все равно ответ. – Popeye

Смежные вопросы