#iphone #objective-c #text #uiimageview #scrollable
#iPhone #objective-c #текст #uiimageview #прокручиваемый
Вопрос:
Мне нужно, чтобы неопределенное количество текста и одно или несколько изображений можно было прокручивать как один объект. Я весьма удивлен, что это, похоже, не предусмотрено по умолчанию, я думал, что видел это несколько раз раньше… Я пытался погуглить, но все, что я нахожу, не подходит. Изображения будут не шире экрана, а между строками текста. Мне нужно что-то, что позволило бы мне сделать что-то вроде:
текст
изображения продолжается
__ на этом экран заканчивается, содержимое продолжается,
текст продолжается,
текст продолжается,
изображение
текст
текстб продолжается,
изображение
текстб продолжается, текстс
Содержимое для текста будет отображаться в виде списка, но я думаю, что могу предсказать, что оно будет ДЕЙСТВИТЕЛЬНО статичным, поэтому я мог бы просто задать текст в IB и создать представление для каждого содержимого -.-. Я читал о Web View, но, насколько я понял, для этого потребуется подключение к Интернету, а приложение должно работать вообще без подключения к Интернету. Есть предложения или опыт по этому поводу?
Большое спасибо!
Ответ №1:
Есть другой способ добиться цели:
- Если у вас есть статический контент, и вам нужен сложный макет, и вы знаете, как это сделать в html, вам следует использовать UIWebView и связанный HTML-файл и изображения и загрузить его чем-то вроде:
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"MyStuff" ofType:@"html"]]]];
- Вы также можете создать макет с помощью UILabels и UIImageViews и разместить все это в одном UIScrollView
- Если это более динамично, вам следует выбрать последнее, но вам нужно запрограммировать своего рода алгоритмы компоновки, которые обрабатывают разное количество / размеры изображений, количество / длину тестовых абзацев и так далее.
Комментарии:
1. Спасибо 🙂 Я выберу UIWebView
Ответ №2:
Как вы упомянули, одним из вариантов является UIWebView
.
Он не требует подключения, так как вы можете загрузить в него статический HTML-код, выполняющий:
– loadHTMLString:baseURL:
Указав baseURL
, который «указывает» на ваш пакет, вы также можете включить изображения в качестве ресурсов в свой проект Xcode и отобразить их (с помощью <img src=... /img
вашего HTML):
NSString* basePath = [[NSBundle mainBundle] bundlePath];
[_label loadHTMLString:text baseURL:[NSURL fileURLWithPath:basePath]];
Ответ №3:
Для работы веб-просмотра не требуется подключение к Интернету. Посмотрите на этот метод на UIWebView
:
- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL