2013-04-18 2 views
3

작업중인 앱의 삭제 버튼을 누르면 도청 호출됩니다.UITableView에서 삭제 버튼을 일시적으로 사용 중지합니다.

그러나 서버가 응답하기를 기다리는 동안 삭제 단추를 여러 번 클릭 할 수 있으므로 여러 개의 서버 요청을 보낼 수 있습니다.

나는 서버에서 다시 듣기 전까지 삭제 버튼을 비활성화하려는 솔루션을 찾고 있습니다. 이것이 가능한가? 아니면 이에 대한 또 다른 유익한 해결책이 있습니까? 아니면 내가 처음부터 뭔가 잘못하고있는 것입니다.

감사합니다.

+0

처음으로 두드리면 버튼을 비활성화하십시오. 준비가되면 다시 활성화하십시오. – rmaddy

+0

나는이 질문을 더 잘 표현해야한다고 생각한다. 그것이 불가능하거나 불가능하게하는 방법에 관한 것이 었습니다. 어떻게하면 UITableView의 삭제 버튼에 액세스합니까? UITableView에는 deleteButton이없는 것 같습니다. 나는 Apple docs에서 그것을 찾을 수 없을 것입니다. – dagnytaggart

+0

오, 셀에있는 삭제 버튼에 대해 이야기하고 있습니까? 어느 것? 작은 빨간색 원 또는 큰 빨간색 삭제 확인 버튼? – rmaddy

답변

4

표 셀에 삭제 확인 단추를 표시 한 다음 사용자가 단추를 누르면 평소 commitEditingStyle 대리자 메서드에서 삭제를 처리하는 것처럼 보입니다.

그러나 서버 요청을 시작한 것처럼 보이며 실행 중에는 삭제 단추가 계속 표시됩니다. 이는 서버 요청이 완료 될 때까지 실제로 행을 삭제하지 않는다는 것을 의미합니다.

이 경우라면 commitEditingStyle 메서드에서 수행해야 할 작업은 삭제되는 행을 즉시 다시로드하는 것입니다. 삭제 버튼이 제거됩니다. 그런 다음 서버 요청을 시작합니다. 서버 요청이 완료되면 데이터 소스를 적절하게 업데이트 한 다음 필요에 따라 행을 삭제하거나 테이블이나 섹션을 다시로드하십시오.

셀에 작은 활동 표시기를 추가하여 사용자에게 행이 처리 중임을 알리는 것이 좋습니다. 서버 요청이 진행되는 동안 사용자가 행을 다시 스 와이프하지 못하게 할 수도 있습니다.

+0

내가 원했던 것, 그것은 효과가있다. 감사. – dagnytaggart

0

를 사용하여 처음으로 도청이 방법은 서버에서 응답을받을 때

[deleteButton setEnabled:NO]; 

이 그 다음을 할 수 있습니다.

+2

더 나은 점은'deleteButton.enabled = NO'를 사용하는 것입니다. 버튼을 비활성화하면 모양이 제대로 업데이트됩니다. 귀하의 접근 방식은 버튼의 모양을 변경하지 않습니다. – rmaddy

+0

네가 맞다. 나는 편집 할 것이다. – iOSGuru248

+0

이것은 직접 액세스 할 수없는 UITableViewCell에 이미 포함 된 삭제 버튼 용입니다. – thedeveloper3124

관련 문제