Большой стол прокрутки с кнопками - PullRequest
1 голос
/ 06 января 2010

Мы пытаемся написать учебное пособие для iPhone. В верхней половине экрана находится схема двигателя автомобиля, в нижней части - текст. Когда пользователь многократно нажимает кнопку «Далее», мы выделяем разные части движка, а вместе мы выделяем разные части описательного текста ниже.

Мы в основном хотим, чтобы «живой текст» пополам, с иллюстрацией, идущей сверху вверх, где читатель находится в тексте. Что мы хотели бы из текста: 1. Пользователь может прокрутить его большим пальцем, поэтому, возможно, UIScrollView 2. Программное обеспечение может явно прокручивать прокрутку к любой части текста (когда они нажимают кнопку «Далее»). 3. слова в тексте перемежаются с горячими ссылками, например, «это распределительный вал ... это поршень ...», и пользователь должен иметь возможность щелкнуть любое из ключевых слов, таких как распределительный вал, поршень, и выделить на диаграмме это. (Проблема не в подсвечивании диаграммы, а в ее захвате кликом). Текст будет содержать 300 ~ 400 кнопок / ссылок / ключевых слов и около 600 слов текста.

Поскольку это довольно похоже на использование веб-браузера, мы попытались использовать версию веб-комплекта Apple, используя UIWebView и handleOpenURL, чтобы зарегистрировать сервис обратно в самом приложении. Но Webkit для внутренних ссылок появляется всплывающее окно с просьбой разрешить доступ к этой ссылке. Каждый пользователь хочет перейти по ссылке (в нашем случае это просто внутреннее событие, которое мы перехватили, чтобы мы могли выделить, например, распределительный вал). Попытка перехватить событие из представления HTML, но это не сработало.

Кажется, что лучшее, что мы можем сделать, - это отказаться от прокрутки текста и сделать текстовую часть более похожей на флэш-карты или презентацию в формате Power Point, разбивая текст на пользовательские ячейки UIViewCells с помощью кнопок внутри UIScrollView. Однако это наложит на автора досадное ограничение, что ему придется писать все, чтобы поместиться в UIViewCells, вроде как коренастый.

Любые идеи будут оценены.

Ответы [ 2 ]

2 голосов
/ 06 января 2010

Это определенно то, для чего вы можете использовать UIWebView. Не используйте handleOpenURL, скорее, установите ваш viewController в качестве делегата веб-просмотра и переопределите -webView: shouldStartLoadWithRequest: navigationType :. Когда это будет вызвано, проверьте запрос и извлеките данные своей ссылки оттуда.

0 голосов
/ 06 января 2010

Вероятно, было бы проще реализовать это полностью на JavaScript в документе, который вы загружаете в UIWebView. В любом случае вам придется использовать JavaScript (т. Е. [UIWebView stringbyevaluatingjavascriptfromstring:]) для достижения таких вещей, как прокрутка до определенной позиции.

...