2013-08-02 1 views
1

В моем представлении таблицы я использовал пользовательскую ячейку, которая содержит флажок. Код для добавления флажка в пользовательском классе ячейки является:как заблокировать didSelectRowAtIndexPath для подзаголовка?

checkbox = [[SSCheckBoxView alloc] initWithFrame:CGRectMake(0, 20, 20, 20) 
                style:kSSCheckBoxViewStyleGlossy 
                checked:NO]; 
[self addSubview:checkbox]; 

Моей проблемы, когда я нажимаю на флажке она будет вызывать didSelectRowAtIndexPath. как заблокировать это?

+1

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

+0

Donot переопределяет метод didSelectRowForIndexPath – iProgrammer

ответ

4

Вам нужно будет добавить UIButton или сделать галочкой в ​​виде кнопки, а затем addsubview в UITabelViewCell. Это переопределит метод didSelectRowAtIndexPath, и нажатие кнопки сделает ваше действие. Также сделайте Button немного больше по размеру, чтобы зона с клики была оправдана. Надеюсь это поможет.

EDIT:

Так что, если и хочет, чтобы это сделать у меня есть способ добавить булево значение IsChecked = YES методы флажка. Тогда, когда метод didSelectRowAtIndexPath называется, в нем добавить

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
    { 

     if(IsChecked == NO) 
     { 
     Ischecked = NO; 
     // Add your methods 
     } 
    } 

Надеется, что вы получили это ....

+0

Я уже добавил целевой метод [checkbox setStateChangedTarget: self selector: @selector (checkboxViewStateChanged :)] ;. но после того, как checkboxViewStateChanged вызван, didSelectRowAtIndexPath также получает вызов – manujmv

+0

Пожалуйста, проверьте мои изменения .... :) – IronManGill

3

Вы можете остановить выбор, возвращая ноль для пути индекса. Используйте следующий код.

-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
    return nil; 
} 
Смежные вопросы