iOS SDK: два TextViews в одном ScrollView? - PullRequest
0 голосов
/ 15 июня 2011

Можно ли поместить два TextView в один ScrollView, чтобы только ScrollView ScrollView и два встроенных TextView не могли прокручиваться независимо?(Но если ScrollView прокручивает, TextViews должен прокручиваться либо для отображения остального текста.)

Thx.С уважением, Даниэль

Редактировать:

Текущий код http://www.muehlbachler.org/spt.zip

Заявление о том, что мне нужно и что приложение делает до сих пор: одна часть (только необходимая)простая программа проверки портов, которая проверяет диапазон портов, если они открыты или отклонены хостом.Для этого под формой есть два основных раздела: «открытые порты» и «закрытые порты».Под каждым основным разделом находятся два текстовых представления, в которых отображаются порты (открытые или закрытые).Я сделал два текстовых обзора, потому что это лучше, если вы хотите видеть все открытые / закрытые порты, потому что тогда вы не должны выполнять прокрутку так часто.Проблема в том, что каждое текстовое представление может прокручиваться независимо, но это довольно неприятно, потому что я просто хочу прокрутить текстовые представления открытого / закрытого портов вместе.Фактически, два из текстовых представлений должны быть сгруппированы так, чтобы они могли прокручиваться только вместе.Пример: представьте, что у вас есть 100 закрытых портов, и теперь они отображаются разделенными на два текстовых представления (50: 50).Теперь вы хотите быстро взглянуть на все номера закрытых портов и (сейчас) вам придется прокручивать два раза, потому что вы должны прокручивать textview1 и textview2 отдельно.Теперь возникает желаемое поведение: вы просто хотите прокрутить один раз, а если вы прокрутите это время, вы хотите увидеть все закрытые порты (потому что прокручиваются и два отдельных текстовых представления).Моя идея состояла в том, что я просто помещаю скролл-просмотр перед текстовыми видами, а затем могу прокручивать их вместе, но это не работает ...: (

Редактировать:

Изображение добавлено. I 'Мне запрещено добавлять изображения из-за моей репутации, поэтому я загрузил его: http://www.muehlbachler.org/spt.jpg

Ответы [ 2 ]

1 голос
/ 15 июня 2011

Я бы предпринял несколько иную попытку, пытаясь синхронизировать положение прокрутки двух текстовых представлений.Я бы сделал общий вид UIViewController a UIScrollViewDelegate.Я бы реализовал метод scrollViewDidScroll:, который запрашивал бы только что прокручиваемое текстовое представление, в котором он прокручивался, а затем велел другому текстовому представлению прокручивать в ту же позицию.Чтобы предотвратить цикл, где этот метод повторяется, я бы установил флажок для проверки перед отправкой сообщения прокрутки.Это очень просто, если оба текстовых представления гарантированно имеют одинаковый размер, но может потребоваться больше работы, если они имеют разные размеры.Возможно, позиция прокрутки будет рассчитана на проценты.Возможно, представления прокрутки должны знать о содержимом и прокручивать до определенных заголовков.

Могут быть реализованы дополнительные методы в UIScrollViewDelegate, чтобы сохранить синхронизацию во время пользовательской прокрутки, в зависимости от того, как я хотел, чтобы прокручивались текстовые представления.

В ответ на комментарии:

Похоже, что процентный расчет будет работать лучше в этой ситуации.Каждый вид прокрутки имеет свойства contentSize и contentOffset.Смещение другого вида можно рассчитать с помощью (thisView.contentOffset.x/thisView.contentSize.height) * otherView.contentSize.height.

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

scrollViewDidScroll:, вызываемый каждый раз, когда необходимо перерисовать представление прокрутки.Таким образом, в одном взаимодействии с пользователем этот метод может вызываться сотни раз.Одно это позволит синхронизировать два вида прокрутки.

0 голосов
/ 15 июня 2011

зачем нужны два textView внутри scrollview, тогда почему бы не использовать только textview, в котором есть scrollview, чтобы увидеть остальную часть текста, просто прокрутите textview.

...