2009-12-17 4 views
2

Я написал некоторый код MonoTouch, чтобы отобразить Nib'less UITableView, и представление выглядит нормально заполненными данными ячейки на начальном дисплее. Однако, когда я прикасаюсь к прокрутке вниз, чтобы просмотреть больше данных, я получаю двойной разделитель сетки, содержащий статические горизонтальные разделители строк, которые не перемещаются с помощью действия прокрутки плюс другие сетки или горизонтальные разделители ячеек, которые расположены правильно и которые перемещаются с действие прокрутки вниз.UITableView горизонтальные разделители строк не прокручиваются вверх или вниз

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

Я использую объекты UITableViewCell по умолчанию для заполнения строк таблицы.

Возможно, мне не удалось настроить что-то, что обычно будет выполнять интерфейс Builder. Есть идеи? Надеемся, что люди Objective-C смогут интерпретировать код .Net.

public override void ViewDidLoad() 
{ 
    base.ViewDidLoad(); 

    _tableView = new UITableView() 
    { 
     Source = new TableSource(), 
     AutoresizingMask = UIViewAutoresizing.FlexibleHeight | UIViewAutoresizing.FlexibleWidth, 
     BackgroundColor = UIColor.White 
    }; 
    _tableView.SizeToFit(); 
    _tableView.Frame = new RectangleF (0, 0, this.View.Frame.Width, this.View.Frame.Height); 
    this.View.AddSubview(_tableView); 

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

Update 2: Добавлена ​​

tableView.SeparatorStyle = UITableViewCellSeparatorStyle.None; 

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

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

ответ

3

Решение найдено. Пример кода, приведенный выше, был принят из приложения стороннего приложения MonoTouch в блоге. Этот код, похоже, создает два полностью перекрытых UITableViews, а статические линии сетки, вероятно, были из пустого и более глубокого UITableView в z-порядке, который не реагировал на любые жесты прокрутки.

Нет необходимости вручную создавать экземпляр объекта UITableView, как показано выше, потому что класс UITableViewController делает это для нас, поэтому вызов AddSubview() является излишним.

Вот код, который работает для меня:

public override void ViewDidLoad() 
{ 
    base.ViewDidLoad(); 
    this.TableView.Source = new TableSource(); 
} 
Смежные вопросы