2013-08-02 2 views
1

내 tableview에서 확인란을 포함하는 사용자 지정 셀을 사용했습니다. 사용자 정의 셀 클래스의 체크 박스를 추가하는 코드이다 : 나는 didSelectRowAtIndexPath를 호출합니다 체크 박스를 클릭 할 때마다하위 뷰의 didSelectRowAtIndexPath를 차단하는 방법은 무엇입니까?

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

내 문제입니다. 이것을 막는 방법?

+1

은 요는 SSCheckBoxView에서 사용자 정의 버튼을 추가하고 버튼의 대상 및 선택기를 추가해야합니다. 그런 다음에 그 didSelectRow를 클릭하면 버튼의 선택자를 호출 할 호출되지 않습니다. –

+0

didSelectRowForIndexPath 메서드를 무시합니다. – iProgrammer

답변

4

UIButton을 추가하거나 체크 박스를 버튼으로 설정 한 다음 에 addsubview을 입력해야합니다. 그러면 didSelectRowAtIndexPath 메소드 자체가 무시되고 버튼 클릭으로 인해 귀하의 행동이 이루어집니다. 클릭 가능한 영역이 정당화되도록 버튼의 크기를 조금 더 크게 만드십시오. 희망이 도움이됩니다.

편집 : u는 그것을 수행하려는 경우

그래서 나는 방법은 체크 박스 방법에 부울 값 IsChecked = YES를 추가 할 수 있습니다. didSelectRowAtIndexPath 메서드를 호출 할 때 다음, 그 안에

+0

이미 대상 메서드 [checkbox setStateChangedTarget : 셀렉터 : @selector (checkboxViewStateChanged :)];를 추가했습니다. 하지만 checkboxViewStateChanged가 호출 된 후에도 didSelectRowAtIndexPath가 호출됩니다. – manujmv

+0

제 편집을 확인하십시오 .... :) – IronManGill

3

당신은 인덱스 경로 전무를 반환하여 선택을 중지 할 수 있습니다 ....

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

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

는 당신이 그것을 가지고 희망 추가 할 수 있습니다. 다음 코드를 사용하십시오.

-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
    return nil; 
} 
관련 문제