2014-11-12 2 views
0

Я использую swift и имею панель рассказов, содержащую UIViewController, которая включает UIScrollView с UITableView. storyboard hierarchyДинамически настраиваемый размер рамки UITableView, который помещается в UIScrollView

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

scrollView.contentSize = CGSize (ширина: 3500, высота: scrollView.contentSize.height)

я также нужно установить размер кадра UITableView. Когда я устанавливаю его из раскадровки с показанным полем, это работает, но когда я устанавливаю его программно из метода viewDidLoad, он не работает. Значение ширины отображается как измененное на 3500, но когда я проверил метод tableView cellForRowAtIndexPath, я вижу значение, заданное в истории.

Need to change this from code

+0

Из любопытства, почему вы положить 'UITableView' внутри' UIScrollView'? 'UITableView' имеет собственный внутренний' UIScrollView'. –

+0

Я не мог прокручивать по горизонтали, прежде чем вводить UITableView внутри UIScrollView. Я новичок в разработке IOS и просто подумал, что могу прокручивать горизонтально только путем ввода, потому что я не мог прокручивать его без него. Если я не создаю отдельный прокрутки, как установить размер содержимого внутреннего прокрутки? – turkenh

+0

Ну, технически, 'UITableView' * - это' UIScrollView'; это подкласс. Вы можете напрямую получить доступ к 'contentSize'. –

ответ

1

Вот пример проекта, который я только что создал, чтобы посмотреть, могу ли я создать то, о чем вы просите.

https://github.com/joalbright/Excel

+0

Большое спасибо. Просто проверил проект. У вас 3000/200 = 15 столбцов. Таким образом, вы увидели, что размер рамы для таблицы составляет 3000 от панели рассказов. Моя конкретная проблема заключается в том, что мне придется устанавливать количество столбцов, таким образом, размер кадра табличного представления динамически с помощью кода. – turkenh

+0

Обновлен проект, чтобы сделать ширину таблицы шириной. Ограничьте значение tableView и программно измените его ширину. –

+0

Отлично, это именно то, что мне нужно :) Большое спасибо. Но не могли бы вы рассказать мне, что я делаю неправильно раньше? Я установил tableview.frame настолько, насколько мне нужно. – turkenh

0

Apple Documentation отпугивает вас от вложения UITableView в UIScrollView.

Вы не должны вставлять объекты UIWebView или UITableView в объекты UIScrollView. Если вы это сделаете, может возникнуть непредвиденное поведение, потому что события касания для двух объектов могут быть перемешаны и неправильно обработаны.

В любом случае, ваши UITableView и UIScrollView прокручиваются по горизонтали?

+0

Хм, похоже, я борюсь с этим неожиданным поведением. – turkenh

+0

Да, я могу прокручивать горизонтально, но проблема в том, что tableView заканчивается, даже если есть больше контента справа. Поэтому я подумал, что мне нужно изменить размер фрейма tableView. Когда я устанавливаю его на большое значение из доски объявлений, как указано выше, все в порядке. – turkenh

Смежные вопросы