текст и изображение как единый прокручиваемый объект

#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