2015-10-21 1 views
0

У меня есть четыре изображения; каждый имеет ширину 350 пикселей; У меня есть текст Север на первом, Восток на втором, Юг на третьем и Запад на четвертом. Я помещаю их в scrollView в одном изображении, и я связываю упомянутый scrollView с тем направлением, в котором я указываю свой iPad. Теперь, когда я качаю вокруг, я хочу, чтобы свиток обходил вокруг изображений, поэтому, если я смотрю на север и поворачиваю на восток, я вижу северное скольжение экрана и восток на него.Панорамирование изображения/изображений в Swift с использованием компаса iPad

Теперь я попытался сделать это с помощью компаса, и он работает достаточно хорошо, но как код, пересекающий границу между 0 градусами и 360 градусами, является проблемой. Я пробовал использовать рыскание, так что я смотрю два круга на 180 градусов, но разработка того, как заставить эту работу уклониться от меня тоже. Я google это и найти кватернионы и углы Эйлера, но ничего, что имеет для меня достаточный смысл ...

Нужно какое-то направление/помощь.

+0

Этот вопрос был дан ответ ниже, я отправляю код. – user3069232

ответ

2

Для этого не требуется прокрутка, поскольку вы контролируете смещение прокрутки по заголовку устройства, а не позволяете пользователю прокручивать экран. Таким образом, вы можете просто использовать простой старый UIView в качестве родителя представлений изображений. Вы просто обновили бы view.bounds.origin вместо scrollView.contentOffset для «прокрутки». (Под капотом, вид свитка contentOffset это же, как и bounds.origin.)

Во всяком случае, выложите свои изображения, как это:

+-------+-------+-------+-------+-------+ 
| North | East | South | West | North | 
+-------+-------+-------+-------+-------+ 

Обратите внимание, что Северное изображение используется дважды.

Когда вы получаете новый заголовок, обновить смещение зрения прокрутки, как это:

let range = CGFloat(350 * 4) 
let offset = range * (CGFloat)direction/360 
scrollView.contentOffset = CGPointMake(offset, 0) 
+0

Вау, это работает отлично и проще, чем код, с которым я обманывал. ** СПАСИБО **, дал бы два голоса, если бы мог, для быстрого быстрого и простого ответа. – user3069232

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