UITableView, прокручивающий Приложение катастрофических отказов

Вы можете сделать это используя transform и transform origin.

Объединение различных трансформеров дает аналогичный результат. Я надеюсь, что вы найдете это полезным. :) Смотрите эти примеры для более простых преобразований. это оставило точку:

div {    
    width: 300px;
    height:200px;
    background-image: url('http://placecage.com/g/300/200');
    -webkit-transform: perspective(300px) rotateX(-30deg);
    -o-transform: perspective(300px) rotateX(-30deg);
    -moz-transform: perspective(300px) rotateX(-30deg);
    -webkit-transform-origin: 100% 50%;
    -moz-transform-origin: 100% 50%;
    -o-transform-origin: 100% 50%;
    transform-origin: 100% 50%;
    margin: 10px 90px;
}
<div></div>

Это имеет правую точку перекоса:

div {    
    width: 300px;
    height:200px;
    background-image: url('http://placecage.com/g/300/200');
    -webkit-transform: perspective(300px) rotateX(-30deg);
    -o-transform: perspective(300px) rotateX(-30deg);
    -moz-transform: perspective(300px) rotateX(-30deg);
    -webkit-transform-origin: 0% 50%;
    -moz-transform-origin: 0% 50%;
    -o-transform-origin: 0% 50%;
    transform-origin: 0% 50%;
    margin: 10px 90px;
}
<div></div>

то, что делает transform: 0% 50%;, это устанавливает начало координат по вертикали посередине и по горизонтали слева от элемента. таким образом, перспектива не видна в левой части изображения, поэтому она выглядит плоской. Эффект перспективы в правой части, поэтому он выглядит наклонным.

11
задан dlamblin 17 June 2009 в 22:39
поделиться

4 ответа

Итак, если вы выполнили шаги по воспроизведению, я добавлю шаги для решения этой проблемы:

Шаги по устранению этой проблемы

  1. Подкласс a UIViewController . Я назвал свой CombinationsViewController . В этом контроллере добавьте свойство как IBOutlet для комбинаций Table ViewController из шага 6 ниже.

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

  3. В FirstView.xib измените класс File's Owner на этот последний подкласс.

  4. Свяжите его комбинацииViewController выход к Контроллеру представления таблицы комбинаций в FirstView.xib , созданном на шаге 7 ниже. и дважды перетащил табличное представление , на мой взгляд, на этот Контроллер представления таблиц комбинаций . После связывания источника данных и одного раза делегата .

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

Тот, кто первым резюмирует это в своем ответе, получает отметку о правильном ответе. EG Создайте подкласс viewController, который является владельцем файла FirstView.xib и содержит сохраненный IBOutlet, который вы можете связать с контроллером табличного представления в том же файле xib.

После связывания источника данных и одного раза делегата .

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

Тот, кто первым резюмирует это в своем ответе, получает отметку о правильном ответе. EG Создайте подкласс viewController, который является владельцем файла FirstView.xib и содержит сохраненный IBOutlet, который вы можете связать с контроллером табличного представления в том же файле xib.

После связывания источника данных и одного раза делегата .

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

Тот, кто первым резюмирует это в своем ответе, получает отметку о правильном ответе. EG Создайте подкласс viewController, который является владельцем файла FirstView.xib и содержит сохраненный IBOutlet, который вы можете связать с контроллером табличного представления в том же файле xib.

Поэтому вам нужно применить исправление, перечисленное выше.

Тот, кто первым резюмирует это в своем ответе, получает отметку о правильном ответе. EG Создайте подкласс viewController, который является владельцем файла FirstView.xib и содержит сохраненный IBOutlet, который вы можете связать с контроллером табличного представления в том же файле xib.

Поэтому вам нужно применить исправление, перечисленное выше.

Тот, кто первым резюмирует это в своем ответе, получает отметку о правильном ответе. EG Создайте подкласс viewController, который является владельцем файла FirstView.xib и содержит сохраненный IBOutlet, который вы можете связать с контроллером табличного представления в том же файле xib.

5
ответ дан 3 December 2019 в 05:58
поделиться

похоже, что вы теряете свой делегат tableView.

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

7
ответ дан 3 December 2019 в 05:58
поделиться

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

Все ячейки загружаются из метода источника данных:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

I убедится, что вы явно установили делегат и источник данных для tableView. Это можно сделать в коде или в IB. автор:

[self.tableView setDelegate:self];
[self.tableView setDataSource:self];

Также, как сказал Bluephlame, вы могли бы где-то выпустить UITableVewController.

Чтобы выяснить это, установите точку останова внутри метода dealloc:

- (void)dealloc{


     //releasing things

     [super dealloc];
} 

Если вы отпустите его, вы попадете в эту точку останова. Тогда вы можете начать поиск виновного.

4
ответ дан 3 December 2019 в 05:58
поделиться

У меня была такая же проблема. У меня был подкласс UITableViewController в файле пера, но я только объявил UITableView как выход / свойство, которое UITableViewController табличного представления выпускалось, пока еще использовалось.

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

0
ответ дан 3 December 2019 в 05:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: