2012-11-27 4 views
1

일부 셀이 채워진 UITableView가 있습니다. 다음 스 니펫을 사용하여 UIButton을 만들었습니다. 섹션 머리글 중 하나 옆에 배치되었습니다.UITable 스크롤 후 UIButton을 클릭 할 수 없습니다.

UIButton *addButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[addButton addTarget:self action:@selector(addButtonPressed) forControlEvents:UIControlEventTouchUpInside]; 
[addButton setBackgroundImage:[UIImage imageNamed:@"add.png"] forState:UIControlStateNormal]; 
addButton.backgroundColor = [UIColor clearColor]; 
addButton.frame = CGRectMake(270, 150, 29, 29); 

버튼이 올바르게 배치되고 작동합니다. 그러나보기가 스크롤 된 후 (심지어 1 픽셀 정도) 버튼이 한 번 작동 한 다음 응답을 멈 춥니 다. 클릭에 대한 조치가 응답하지 않으면 버튼이 트리거되지 않고 '우울한'그림자가 표시되지 않습니다. 응용 프로그램의 나머지 부분은 정상적으로 실행되며 충돌하지 않습니다.

스크롤을 한 번 더 클릭하면 다시 작동하지 않기 때문에 이상하게 보입니다. 버튼은 테이블에 행을 삽입하는 데 사용되므로 추가 행이 눌린 후 경계 또는 무언가가 깨질 수 있습니다.

버튼을 누르면 기능 :

- (void)addButtonPressed { 
    self.addClientTable.editing = YES; 

    // First figure out how many sections there are 
    NSInteger lastSectionIndex = [self numberOfSectionsInTableView:self.addClientTable] - 1; 

    // Then grab the number of rows in the last section 
    NSInteger lastRowIndex = [self.addClientTable numberOfRowsInSection:lastSectionIndex]; 

    [self.addClientTable insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:lastRowIndex inSection:lastSectionIndex]] withRowAnimation:UITableViewRowAnimationRight]; 

    self.addClientTable.editing = NO; 
} 

경우 addClientTable는 jQuery과입니다.

UIButton이 클릭에 대한 반응을 멈추게 할 수있는 원인은 무엇입니까?

+0

addClientTable이 귀하의 tableview입니까? – Martol1ni

+0

예, 그렇습니다. * (채우기 공간) * – Ollie

답변

3

버튼이 슈퍼 뷰에서 벗어 났고 단추가 포함 된보기 또는 그 중 하나의 슈퍼 뷰에서 클립 하위보기 옵션을 사용하지 않는 것이 거의 확실합니다.

모든보기 속성 클립 하위보기를 true로 설정하고 단추에 표시되는지 확인합니다. (버튼이 사라질 것으로 예상 됨)

더 많은 코드를 제공하면이 문제를 해결하는 데 도움이 될 수 있습니다.

- 다시 질문을 읽기

, 그것은 또 다른 가능성 문제는 당신이 당신의 버튼 앞에 하나 개의보기를 가지고있다. 보기의 배경 또는 그와 유사한 것을 변경하여 테스트 할 수 있습니다.

+0

단추가 포함 된보기에 대한 클립 하위보기 및 ClipToBound를 설정했지만 아무 것도 변경되지 않았습니다. 버튼은 여전히 ​​표시되지만 여전히 작동하지 않습니다. 그것 앞에보기가있는 것 같지 않습니다. – Ollie

+0

@Ollie 문제를 볼 수 있도록 더 많은 코드 또는 데모를 제공 할 수 있습니까? 나는 그것이 당신의 뷰 경계에 문제가 있거나 버튼 경계에 문제가 있다고 확신한다. 버튼과의 상호 작용을 사용 중지한다고 생각하지 않기 때문입니다. – ggrana

+0

@ggrana이 문제를 회피 해 드려 죄송합니다. 그러나 비슷한 문제가 있지만 다른 방법은 있습니다. 사용자가 스크롤 할 때까지 버튼을 클릭 할 수 없습니다. 헤더의 '클립 하위 뷰'를 켜면 스크롤 할 때까지 클릭 할 수없는 부분이 잘립니다. 왜 그런 일이 일어날 지 모릅니다. – benwad

관련 문제