Проведите пальцем, чтобы удалить на UITableViewCell: ячейка становится сжатой - PullRequest
3 голосов
/ 01 апреля 2012

У меня есть пользовательская ячейка табличного представления, созданная программно, которая состоит из: фонового представления с изображением 3 метки слева и одной стороны UISwitch справа. Я хочу иметь возможность провести и удалить ячейку. Это работает, однако, когда я провожу пальцем, чтобы вызвать кнопку удаления, кнопка удаления выдвигает фоновое представление (вместе со всем остальным) поверх, как будто оно сжимает ячейку. Как получить, чтобы фоновое изображение не уменьшалось?

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

Есть идеи? Спасибо!

Ответы [ 2 ]

6 голосов
/ 01 апреля 2012

Я предполагаю, что проблема (поскольку вы не опубликовали какой-либо код) заключается в том, что вы добавили все эти элементы пользовательского интерфейса в качестве подпредставлений ячейки, т.е. cell.backgroundColor = [UIColor someColor], [cell addSubview: label1] и т. д. и т. д.

Вот в чем дело: представление ячейки не знает, как соответствующим образом изменить размер, когда происходят такие вещи, как режим редактирования. Тем не менее, ContentView ячейки, который является UIView, знает, как изменить размер. По этой причине вам нужно добавить свои метки, переключатели и т. Д. В качестве подпредставлений contentView, а не ячейки. Если вы войдете в режим редактирования, все изменится соответствующим образом.

4 голосов
/ 02 ноября 2012

Я только что решил похожую проблему. Это не имеет ничего общего с представлением содержимого .Когда вы добавляете UIImageView в ячейку, либо в построителе интерфейса, либо в раскадровке, в нем установлены все пружины и распорки.Вы заметите, что ваши UILabels имеют только верхнюю и левую стойки.

Удаление внутренних пружин и правой / нижней стойки для UIImageView в ячейке UITableView может помешать их сдавливанию с помощью кнопки для удаления.1010 *

...