Как можно предотвратить обрезку содержимого UITableView при горизонтальной прокрутке? - PullRequest
1 голос
/ 19 октября 2011

Мы используем Monotouch для разработки приложения, специфичного для iPad, но я подозреваю, что тот же вопрос относится к стандартным приложениям xcode / cocoa.

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

Мы можем легко заставить UITableView вести себя таким образом, установив ContentSize на соответствующий размер (мы устанавливаем ширину для ширины содержащихся данных и высоту для высоты UITableView).

Однако есть неприятный побочный эффект: вид заголовка и строки, разделяющие каждую из строк, обрезаются до размера кадра при горизонтальной прокрутке. Интересно, что контент продолжает показываться, хотя я подозреваю, что это функция отображения наших данных через подпредставления, добавленные к представлению содержимого ячейки.

Я попробовал почти все комбинации настроек в UITableView (обрезка, установка границ, прозрачность и т. Д.), Но безрезультатно.

Мы убедились, что это будет работать правильно, если мы встроим UITableView в UIScrollView, но мы предпочли бы не использовать этот подход из-за невозможности повторного использования ячеек (в этих табличных представлениях может быть много данных) и другие причины (яблоко говорит не).

Кто-нибудь может указать нам правильное направление? Я не понимаю, почему это так сложно.

1 Ответ

5 голосов
/ 19 октября 2011

Я не гарантирую, что следующее будет работать, но вы можете попробовать следующее.

Чтобы исправить представление заголовка , вам нужно будет добавить содержимое заголовка в макетcontainerView, а затем использовать этот фиктивный containerView в качестве заголовка таблицы.Теперь вы должны установить containerView.clipsToBounds = FALSE и рамку для содержимого заголовка на желаемую ширину (если вы это знаете).

Кроме того, убедитесь, что для содержимого заголовка не установлены маски авторазмера.Мы не хотим, чтобы он менял свой фрейм, независимо от того, что происходит с containerView.

Идея, лежащая в основе этого, заключается в том, что tableView изменит размер фрейма контейнераViewView, но оставит фреймы содержимого заголовка без изменений.И, установив обрезку на FALSE, вы должны заставить свой контент вылиться за пределы контейнера. Видите ... вуаля ... надеюсь

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

Я выложил нечто похожее на представление заголовка, и мне удалось заставить контент пролиться.

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