Как использовать прокрутку на iPhone?

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


person Chilly Zhong    schedule 06.03.2009    source источник
comment
Мне нечего добавить, но ваше имя прекрасно.   -  person Patrick    schedule 06.03.2009


Ответы (4)


Вы можете просто использовать UITextView. Это дочерний элемент UIScrollView, и если вы установите для его свойства text количество текста, которое не помещается в его рамку, представление станет прокручиваемым.

person Andy Bourassa    schedule 06.03.2009

документация по UIScollView от Apple довольно хороша, вы должны начать там и понять класс.

Думайте о Scrollview как о большой поверхности просмотра, по которой скользит экран*. Вы можете добавить подвиды к прокрутке, а затем прокрутка будет похожа на позиционирование экрана над прокруткой - экран действует как окно, через которое вы можете видеть часть содержимого прокрутки ниже.

Для этого у scrollview есть несколько дополнительных свойств по сравнению с обычным UIView, но он похож на UIView в одном важном отношении: он сам не отображает какой-либо контент. Вам нужно добавить подвид, чтобы нарисовать текст. Scrollview настраивается и отображается точно так же, как UIView, т.е. вы устанавливаете фрейм, добавляете его в другое представление, и для отображения текста вам нужно добавить подпредставления в UIScrollView, которые могут фактически отображать текст.

Чтобы настроить базовый UIScrollView, который вы запрашиваете, вы должны просто создать его как обычное полноэкранное представление - установить рамку того же размера, что и окно, и добавить прокрутку в окно в качестве подпредставления. Затем создайте большой UITextView для хранения вашего текста. Представление UIText может быть сколь угодно большим, в частности, оно может быть больше экрана. установите свойство contentSize UIScrollView таким же, как кадр UITextView, а затем добавьте представление UIText в качестве подпредставления UIScrollView.

Как только вы заработаете, вы сможете автоматически перемещать контент с помощью свойства contentOffset, управлять масштабированием и настраивать делегата для наблюдения за событиями прокрутки.

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

person Community    schedule 06.03.2009

Я использовал UIScrollView таким образом для панели инструкций в одном из моих приложений. Это сработало, но я был недоволен результатом. Затем я переключился на использование UIWebView и был намного доволен результатом. Он автоматически обрабатывает размер прокрутки, я получаю все возможности форматирования HTML, и у меня могут быть ссылки, которые ведут к дополнительной информации (или внешним сайтам), не более чем добавляя другой файл HTML и, возможно, некоторый код делегирования. Вот код, который я использовал (и я добавил файл HTML в свое приложение в качестве ресурса):

NSString *path = [[NSBundle mainBundle] pathForResource:@"instructions" ofType:@"html"];
NSFileHandle *readHandle = [NSFileHandle fileHandleForReadingAtPath:path];
NSString *htmlString = [[NSString alloc] initWithData: [readHandle readDataToEndOfFile] encoding:NSUTF8StringEncoding];
[self.instructionsView loadHTMLString:htmlString baseURL:nil];
person Victor Konshin    schedule 16.03.2010

Вы можете обратиться к этому веб-сайту http://www.edumobile.org/iphone/iphone-programming-tutorials/scrollview-example-in-iphone/

Следуйте шаг за шагом, чтобы сделать вид прокрутки в iphone ... удачи :)

person Susan    schedule 19.08.2010
comment
Похоже, вы являетесь настоящим пользователем SO, а не спамером. Так что это немного озадачивает, почему вы опубликовали один и тот же ответ три раза. Вы должны удалить пару таких дубликатов, прежде чем вас оштрафуют. - person APC; 19.08.2010
comment
@APC, ты сказал, оштрафован. я уже удалил; единственное наказание исходит от того, что сообщество отрицает ее ответы. - person ; 19.08.2010
comment
@Will - люди также помечали ее ответы как спам. Таким образом, репутация Дженнифер просачивается двумя способами, хотя я думаю, что она не нажмет волшебные шесть флагов сейчас, а существующие спам-флажки исчезнут через два дня. - person APC; 19.08.2010
comment
так жаль за это. Просто сеть не очень хорошая в моем районе. поэтому я не осознавал, что столько раз публиковал один и тот же ответ. Я не спамер :) - person Susan; 20.08.2010