Каков наилучший способ создания составного прокручиваемого представления на iOS? - PullRequest
0 голосов
/ 17 января 2012

Мне нужно создать прокручиваемый составной вид на iOS.Другими словами, представление будет содержать по крайней мере одно изображение, возможно, кнопку и некоторый текст (который мы можем форматировать жирным шрифтом и т. Д.).Количество данных, и особенно объем текста, является переменным, от 4 строк до 100, возможно, в некоторой степени. Данные являются переменными, и, в частности, изображение и текст не объединяются на бедре.

Все это должно уместиться на «панели» размером около 280х 115 Вт пикселей в макете только для портрета.

Один UITextView не предоставляет средств для отображения изображения или форматирования текста.,

UIWebView предоставляет возможность отображать изображение и форматированный текст, но кнопка представляет собой проблему (даже не уверен, что это выполнимо).

UIScrollView легко разрешит изображение и кнопку,и затем UIWebView может быть встроен в представление прокрутки для текста, но тогда прокрутка становится проблемой - я бы хотел, чтобы весь просмотр прокручивался как единое целое, без необходимости изменять размер веб-представления, чтобы содержать его содержимое, и безпутаница прокрутки внутри прокрутки (документ предупреждает о «неожиданном поведении»).

(я предполагаю, что ваши мысли на данный момент таковы, что я хочу слишком много.)

Итак,какие-либо предложения?Какой лучший способ приблизиться к тому, что мне нужно здесь?

Ответы [ 3 ]

1 голос
/ 17 января 2012

В iOS5 UIWebView имеет свойство scrollView, которое является обычным UIScrollView. Вы должны иметь возможность добавить UIButton в качестве подпредставления scrollView для достижения того, что вы хотите, хотя правильное его расположение может быть проблемой. До iOS5 вы могли циклически просматривать подпредставления UIWebView, чтобы найти UIScrollView с isKindOfClass ...

0 голосов
/ 17 января 2012

Я предлагаю провести тестирование с UIWebView внутри вашего UIScrollView. Я не вижу никаких помех в симуляторе iOS 5.0. Я не знаю, есть ли проблемы в iOS 4.0.

Если вы обнаружите, что есть помехи, вы можете предотвратить их, установив для свойства веб-представления userInteractionEnabled значение NO, либо в кончике, либо в коде. Это предотвратит получение веб-представлением любых прикосновений, поэтому пользователь также не сможет масштабировать его, переходить по ссылкам в нем или копировать с него текст.

В делегате веб-представления, реализуйте webViewDidFinishLoad:, чтобы установить размер веб-представления и просмотр 101 * * прокрутки. Например:

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    CGRect frame = self.webView.frame;
    frame.size = [self.webView sizeThatFits:CGSizeMake(frame.size.width, HUGE_VALF)];
    self.webView.frame = frame;
    self.scrollView.contentSize = CGSizeMake(CGRectGetMaxX(frame), CGRectGetMaxY(frame));
}
0 голосов
/ 17 января 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...