2013-05-23 1 views
1

У меня есть UITableView, где ячейки берутся из UITableViewCell, созданного с помощью файла Interface Builder (xib).Изменение размера UITableViewCell не влияет на область касания

Проблема заключается в том, что сенсорная область ячейки не изменяется независимо от рамки ячейки. Есть ли способ исправить это?

  • вид XIB размер 768x60 (потому что нужно поддерживать портрет, а)
  • Содержание изменяет размер без проблем, но на ощупь область остается неизменной. Мой первоначальный размер ячейки от IB составляет 768x60, где новый размер 1024x60 (пейзаж).
  • Клетка, однако, не выбирается, если сенсорная точка X находится между 768-1024)
  • Структуры IB установлены на следующее (проверьте изображение), я также попробовал несколько разных настроек.

    enter image description here

Как это исправить? Вот журнал из метода layoutSubviews внутри класса UITableViewCell.

Код

- (void)layoutSubviews 
{ 
    NSLog(@"pre frame > %@ ",NSStringFromCGRect(self.contentView.frame)); 
    [super layoutSubviews]; 
    NSLog(@"post frame > %@ ",NSStringFromCGRect(self.contentView.frame)); 
} 

Выход

pre frame > {{0, 0}, {748, 62}} // before calling [super layoutSubviews] 
post frame > {{0, 0}, {1004, 62}} // after calling [super layoutSubviews] 

* * Update * *

Я не мог понять, латание этот код до из-за сроков & следовательно I re created t он xib-файл с нуля (для большого контейнера, который включал UITableView, а не UITableViewCell), и проблема, похоже, исчезла. Спасибо всем, кто пытался помочь.

+0

UITableView может менять рамки? – NANNAV

+0

Проверять взаимодействие пользователя с 'UITableView' и' Cell' в XIB –

+0

Один из надписей вашего стола, безусловно, короче в кадре, чем кадр вашей таблицы (в ландшафтном режиме). Вот почему сенсорная область не работает. Вам нужно правильно проверить весь кадр супервизора, поместив либо цвета фона, либо журналы, как вам угодно. – Divyu

ответ

1

Убедитесь, что все супер-представления (от tableview до self.window.rootViewController в делегате приложения) изменили размер рамки на пейзаж.

+0

Спасибо, кажется, проблема здесь. Я обнаружил, что 2 слоя (между UITableview & window) имеют фрейм {0 0; 768 1024}, который меня удивил. Его в основном первый экран после запуска, очень смущенный этим, поскольку это никогда не случалось со мной раньше :( – nsuinteger

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

  • Нет связанных вопросов^_^