문제

아이폰에 대한,그것은 구성이 가능하 jquery 과 같은 허용한다는 것이 여러 선택?

해봤을 재정의 -setSelected:animated: 각 UITableViewCell 지만,노력하고 초콜릿 필요한 행동은 까다로운로 그것을 분리하기 어려운 실 unselections 에서 사람 jquery 과고 생각했 선택하지 않으로 인해 선택의 또 다른 세포!

희망은 누군가가 도움이 될 수 있습니다!

감사합니다,

닉.

도움이 되었습니까?

해결책

은 작업을 수행하는 가장 좋은 방법이 될 것을 확인별로 선택한 행입니다.

당신이 할 수 있는 설정하여 accessoryType 에서 선택 UITableViewCell 인스턴스를 UITableViewCelAccessoryCheckmark.

를 선택 해제 행 다시 설정하 UITableViewCellAccessoryNone.

을 열거하는 세포는/행을 선택하(말라 버튼을 클릭하),단순히 반복을 통해 세포의 테이블 보고를 위한 UITableViewCellAccessoryCheckmark.또는,관리하는 일부를 중지하는 경우-또는 테이블에서 보기 위임하에서는"선택"대리인 방법입니다.

다른 팁

다음 속성이 잘 작동하는 경우 당신은 당신에 대한 개발 응용 프로그램 iOS5.0+

self.tableView.allowsMultipleSelection = YES;

다음 코드를 사용하여 설정한 세포 액세서 유형:

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

    UITableViewCell *thisCell = [tableView cellForRowAtIndexPath:indexPath];


    if (thisCell.accessoryType == UITableViewCellAccessoryNone) {
        thisCell.accessoryType = UITableViewCellAccessoryCheckmark;

    }else{
        thisCell.accessoryType = UITableViewCellAccessoryNone;

    }
}

- (UITableViewCellAccessoryType)tableView:(UITableView *)tableView accessoryTypeForRowWithIndexPath:(NSIndexPath *)indexPath {

//add your own code to set the cell accesory type.
return UITableViewCellAccessoryNone;
}

Jeff Lamarche 는 튜토리얼에서 수행하는 방법이 여기:

http://iphonedevelopment.blogspot.com/2008/10/table-view-multi-row-edit-mode.html

나지 않을 시도했는 코드 그러나 그것의 뒷면에 내 마음의 동,알고 때 날이 올 것입니다 나는 그것을해야합니다.

나는 백포트 allowsMultipleSelectionDuringEditingallowsMultipleSelection 에서 iOS5 를 이전합니다.할 수 있는 포크 그것에 https://github.com/ud7/UDTableView-allowsMultipleSelection

그것은에서 드롭체뿐만 아니라 당신이해야 할 변화 jquery 과을 UDTableView(에 코드 또는 인터페이스 빌더)

에서 HIG:

테이블 보 의견을 제공 사용자가 선택할 때는 목록 항목입니다.특히,항목을 선택할 수 있고, 행 항목을 포함하는 하이라이트 잠시 사용자가 선택하는 것을 보여주기 위해서 선택이 접수되었습니다.그 후,즉각적인 조치가 발생합니다.하나는 새로운 보이 공개되거나 행에 표시 체크를 나타내 는 항목을 선택되었습니다.행 결코 강조 표시된 상태로 남아 있기 때문에,테이블이 견해를 표시하지 않는 지속적인 선택된 상태입니다.

해야 합니다 목록의 여러 스타일을 선택하거나 무언가를 좋아하는 메일,사용하거나 확인 표시는 액세서리에 제공합니다.

사람에 대한 여러 선택하신

self.tableView.allowsMultipleSelection = YES;

에 viewDidLoad 고

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *tableViewCell = [tableView cellForRowAtIndexPath:indexPath];
    tableViewCell.accessoryView.hidden = NO; 
    // if you don't use custom image tableViewCell.accessoryType = UITableViewCellAccessoryCheckmark;
}

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *tableViewCell = [tableView cellForRowAtIndexPath:indexPath];
    tableViewCell.accessoryView.hidden = YES;
    // if you don't use custom image tableViewCell.accessoryType = UITableViewCellAccessoryNone;
}

만약 당신이 뭔가를 시도하고 다음과 같 메일에 여러 선택(을 삭제하는 메일,예를 들어),그때 당신은 아마가 모든 관리의 선택이 자신입니다.여러 행의 선택이 뭔가 하지 않는 표준에 iPhone.메일하여이 문제를 해결 사용 체크를 나타내는 행을 선택되었습니다.

블루 강조 표시된 행의 표시로 여 행을 선택은 실제로 낙심하라 HIG 페이지 121.확인 표시가 될 것이다.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    int selectedRow = indexPath.row;
    cout << "selected Row: " << selectedRow << endl;
    UITableViewCell *indexPathForCell = [tableView cellForRowAtIndexPath:indexPath];
    if (indexPathForCell.accessoryType == UITableViewCellAccessoryNone) {
        indexPathForCell.accessoryType = UITableViewCellAccessoryCheckmark;
    } else {
        indexPathForCell.accessoryType = UITableViewCellAccessoryNone;
    }

}

다음에 추가 arraying 또는 이제까지 당신이 원하는 데이터를 저장하는 선정되었다.

내가 찾과 같은 문제의 답을 Bhavin Chitroda sovled 그것이 나를 위해 그러나 몇 가지 추가하지 확인 표시가로 스크롤하는 동안.

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

        UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
        if ( [array indexOfObject:indexPath] == NSNotFound ) {
            [array addObject:indexPath];
            cell.accessoryType = UITableViewCellAccessoryCheckmark;
        } else {
            [array removeObject:indexPath];
            cell.accessoryType = UITableViewCellAccessoryNone;
        }

}

추:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
// Your code here
.
.
.
    if ( [array indexOfObject:indexPath] == NSNotFound ) {
        cell.accessoryType = UITableViewCellAccessoryNone;
    } else {
        cell.accessoryType = UITableViewCellAccessoryCheckmark;
    }

    return cell;

}

참고:이에 작동하지 않습니다 iOS4+.이것은 개인,서류 미비한다.를 사용하지 않습니다.

지 않는 경우는 계획을 제출하는 앱이 앱스토어,당신을 호출할 수 있는 다 줄 편집 모드를 구현하여 다음과 같은 방법에 있는 당신의 UITableViewController 대리인:

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    return 3; // Undocumented constant
}

테스트 iOS4.3-6.0

-(void)searchDisplayControllerDidBeginSearch:(UISearchDisplayController *)controller {

    if ([controller.searchResultsTableView respondsToSelector:@selector(allowsMultipleSelectionDuringEditing)]) {
        controller.searchResultsTableView.allowsMultipleSelectionDuringEditing = YES;
    }
    else {
        controller.searchResultsTableView.allowsSelectionDuringEditing = YES;
    }
}

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return UITableViewCellAccessoryCheckmark;
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top