2013-06-26 1 views
0

У меня есть TableView в моем ViewController. В выбранном состоянии поднабор его ячейки увеличивается по ширине и выходит за пределы его.Как остановить контроллер просмотра, чтобы получить доступ к подсмотру ячейки tableView?

Когда я коснусь этого подсмотра, затрагивается реализация View Controller прикосновенийBegan, который используется для отмены выбора ячейки.

Теперь это подвид не обрезается и ему разрешено выходить наружу, поэтому в идеале его касания должны идти, но почему они идут в ViewController с табличным представлением?

  • TableView находится на левой стороне экрана IPad (вид Controller) в качестве боковой панели.
  • Выбранная ячейка выходит как ящик, как показано ниже.
  • на коснувшись в любом другом месте экрана, выдвижной ящик (выбранная ячейка) идет обратно.

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

Таким образом, в конце концов возвращается в.

================================================= 
======           = 
======           = 
======           = 
=============         = 
=============         = 
======           = 
======           = 
======           = 
======           = 
======           = 
======           = 
======           = 
======           = 
================================================== 

ответ

1

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

На самом деле существует одно свойство UIView, называемое «clipsToBounds», и по умолчанию его значение равно «Нет», поэтому это не будет обрезать область, которая находится за пределами UIView, и именно поэтому вы видите вид ячейки, но не получили затрагивает, и это применимо ко всем типам представлений.

Надеюсь, это вам поможет :)

+0

Я сделал это. но теперь TableView делает прикосновение, даже если это не так. Я хочу, чтобы это касание передавалось в ViewController. –

+0

Если вы не хотите касаться UItableview и хотите только увеличить изображение ячеек и других, тогда вам нужно создать свое собственное пользовательское представление и управлять им в UIScrolView. Это единственное решение осталось. –

+0

Итак, я увеличил ширину tableView. а затем подклассы tableview для переопределения hitTest. теперь я проверяю, хочет ли какое-либо из подзонов сотовых телефонов на ощупь. если ни один из них не хочет принять прикосновение, я возвращаю nil, который позволяет следить за обработчиком tableview, который, как оказалось, является ViewController. Проблема решена! –

0

Я думаю, что вместо того, чтобы вид контроллера попытаться создать пользовательские представления один для представления таблицы, а другой ваш взгляд, который будет отображаться как ящик. создать пользовательский делегат для представления таблицы. применяемые функциональные возможности с анимацией, такие как контроллеры push и pop view.I думаю, что это может помочь вам очень хорошо. установить свойство стиля отображения tableviewcell равным нулю.