2012-06-27 3 views
0

나는 모든 tableview 셀에 UISwitchView를 가지고 있으며 셀의 재정렬을 허용하려고합니다. 문제는 테이블 뷰에서 setEditing = true를 설정하면 액세서리 (switchview)가 사라집니다. 둘 다 유지할 수있는 방법이 있습니까?setediting = tableview에서 true로 설정하면 셀 accessoryview가 사라 집니까?

편집

static NSString *CellIdentifier = @"Edit Sources Cell"; 
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
} 

// Configure the cell... 
NSUInteger row = [indexPath row]; 
Source *source = [self.sources objectAtIndex:row]; 

cell.textLabel.text = source.name; 

UISwitch *switchView = [[UISwitch alloc] initWithFrame:CGRectZero]; 
switchView.tag = row; 
cell.accessoryView = switchView; 
[switchView setOn:source.switchedOn animated:NO]; 
[switchView addTarget:self action:@selector(switchChangedForSource:) forControlEvents: UIControlEventValueChanged] ; 

답변

4

셀이 편집 모드 일 때 표시되는보기에 대해 UITableViewCell에 추가 속성 인 editingAccessoryView이 추가로 있습니다.

accessoryVieweditingAccessoryView 속성 모두에 동일한 UISwitch 인스턴스를 할당 할 수 있는지 또는 두 인스턴스를 만들어야하는지 여부는 잘 모르겠습니다. (보기는 한 번에 하나의 부모 만 가질 수 있지만 UITableViewCell은 실제로보기를 표시하는 작업을 수행하므로이 경우를 처리하기에 충분히 똑똑 할 수 있습니다.)

+0

일했습니다! 고맙습니다 – user1337645

0

나는 당신이 당신의 tableview 셀을 하위 클래스 필요가 있다고 생각합니다. UITableViewCell 하위 클래스의 경우 UISwitch을 프로그래밍 방식으로 self.isEditing으로 설정하면 왼쪽으로 이동하십시오. 당신이 재주문 통제 사라지는 것을 의미하는 경우

1

, 당신은, 또는 경우에 그래픽으로 자동 크기 조정을 조정하여 당신이 코드에 스위치를 추가하는 경우 autoresizingMask 속성을 조정하여 다른 곳으로 재배치 할 수 있습니다 IB에 그것을 만들었습니다.

+0

자동 크기 조정 마스크,하지만 그것은 전혀 나타나지 않습니다. edit size = true로 설정하면 accessoryView를 none으로 설정하는 것 같습니다. – user1337645

1

예, 유지하는 방법이 있습니다.

당신은 당신이 편집을 설정할 때 문제되지 않습니다 당신이 스위치보기 (또는 다른 것)을 포함하여이 정의 셀에 모든 UI 요소를 추가 할 수 있습니다, 사용자 정의 셀보기를하고해야 사용자 정의 셀보기에서 UI 요소가 사라지지 않기 때문에 표가 참입니다.

표준 표 셀의 UI 요소가 사용자가 제어하지 못하기 때문에 동시에 기본 제공 액세서리 중 하나만 볼 수 있습니다. 사용자 정의 셀보기를 사용하면 결코 발생하지 않습니다.

사용자 정의 셀보기에 익숙해지기를 바랍니다.하지만 그렇지 않은 경우에는 정확한 코드를 제공 할 수 있지만 생각은 이렇습니다.

+0

나는 현재 (스토리 보드에서) 사용자 정의 셀보기를 사용하고 있다고 생각합니다. 나는 사용자 정의 셀의 액세서리 유형으로 switchview를 추가했습니다. 내 질문에 편집을 참조하십시오. – user1337645

+0

좋아, 내가 한 일은 잘되어 가고 있습니다. 1. '스타일'을 '사용자 정의'로 설정하십시오. 2. 사용자 정의 셀에 스위치보기를 추가했습니다. 3. '액세서리'와 '편집 편의'를 모두 '없음'으로 설정하십시오. 그리고 4. 스위치보기가'[self.tableview setEditing : true]'... 후에 사라지지 않습니다 ... 인터페이스에서 UI 설정을 보지 못해서 왜 틀렸는 지 말하기 어렵습니다 빌더. – holex

관련 문제