2016-04-19 2 views
1

У меня есть простой вид таблицы, которая выглядит как этот enter image description hereПолучить кнопку нажмите на UITableView в Swift

Каждая кнопка перетекает некоторую часть к следующей ячейке (часть требования).

Я хочу, чтобы переполнение кнопки click событие. Как это получить?

По умолчанию он принимает его как щелчок ячейки, а не кнопку, если я нажму на эту переполненную часть.

Я создал dummy code, который меняет цвет кнопки при нажатии, поэтому для кого-то это легко попробовать. такой же макет.

Благодаря

EDIT

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

enter image description here

+0

ли просто нажав вид ячейки таблицы выполнить SEGUE? – rigdonmr

+0

Установите тег для кнопки каждой ячейки. А затем в Button Action проверьте тег и выполните действие соответственно. –

+0

@rigdonmr no segue, Balaji, но он не пойдет в Button Check, бирка тега приходит позже –

ответ

1

Вы должны реализовать метод tableView: heightForRowAtIndexpath: `и вернуть большее значение, чем оно есть сейчас. У ваших камер недостаточно высоты, чтобы отображать кнопки полностью, и из-за этого часть вашей кнопки скрывается за следующей ячейкой. Вы можете легко убедиться, установив флажок «Подглядывание клипов» вашего Cell Prototype в построителе интерфейса, и если вы увидите, что эти кнопки будут обрезаны.


EDIT

Проверьте это: https://github.com/arturdev/test

enter image description here

+0

Я знаю, но переполнение является частью требования, его упоминания и его прихода в следующей ячейке, bcoz clip false –

+0

Чем вы можете это сделать. Скройте разделитель tableView, установив «Separator» в «None» из раскадровки для вашего tableView. Затем увеличьте высоту ячейки, чтобы кнопки могли отображаться полностью, а затем добавьте свой пользовательский разделитель в ту же позицию Y, что и у вас. Для пользовательского разделителя вы можете добавить UIView с высотой 1pt и установить цвет фона для lightGrayColor. – arturdev

+0

Фактическое требование - это вид контейнера, который имеет еще один вид таблицы, в основном, spinner kinda, но я упростил описание проблемы и сделал его как кнопку, поэтому этот подход не выполним. –

1

Подкласс UITableView и переопределить hitTest:withEvent: и выяснить, point находится в рамках одной из кнопок. Верните кнопку, если точка находится внутри рамки или просто верните [super hitTest:point withEvent:event].

Вы можете использовать CGRectContainsPoint и [UIView convertRect/Point:to/fromView:], чтобы упростить расчет.

hitTest:withEvent: - это способ для системы запросить внешний вид, который получит событие в данном месте.

+0

дайте мне попробовать –

+0

Я все еще не могу получить hitTest, возможно ли сделать совершение в git? я знаю его много, чтобы спросить, или я могу использовать 'touchhesBegan: withEvent:' –

+0

@aishwatsingh Я открыл pr https://github.com/aishwat/test/pull/1, чтобы проверить его – sikhapol

1

Сделать UITableView Seperator Нет. нарисуйте метку высотой 1 или 2 пикселя с черным цветом фона в ячейке.

Сделать стиль выбора ячейки не существует в cellForRowAtIndex.

cell.selectionStyle = UITableViewCellSelectionStyle.None 

Управление надлежащей автозагрузкой или авторезистирующей маской.

Только что пробовал с кодом.

Скачать с link

Изображение

enter image description here

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