Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c tableview上的setediting=true是否使单元格访问视图消失?_Objective C_Ios_Uitableview - Fatal编程技术网

Objective c tableview上的setediting=true是否使单元格访问视图消失?

Objective c tableview上的setediting=true是否使单元格访问视图消失?,objective-c,ios,uitableview,Objective C,Ios,Uitableview,我在每个tableview单元格上都有一个UISwitchView,并希望允许对单元格进行重新排序。问题是,当我在桌上视图上设置setEditing=true时,附件(switchview)消失。有什么办法可以同时保持这两种状态吗 编辑 static NSString *CellIdentifier = @"Edit Sources Cell"; UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:C

我在每个tableview单元格上都有一个UISwitchView,并希望允许对单元格进行重新排序。问题是,当我在桌上视图上设置setEditing=true时,附件(switchview)消失。有什么办法可以同时保持这两种状态吗

编辑

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] ;

我认为您需要对tableview单元格进行子类化。如果
self,则通过编程将
ui开关
向左移动。对于
UITableViewCell
子类,isEditing
是肯定的。

如果您的意思是它在重新排序控制下消失,如果您正在添加代码中的开关,则可以通过调整
autoresizingMask
属性将其重新定位到其他位置,如果您在IB中构建了它,则可以通过图形方式调整自动调整大小。

是的,有办法保留它们

您应该创建一个自定义单元格视图,您可以将每个UI元素添加到此自定义单元格,包括切换视图(或其他任何内容),当您设置表的编辑为真时,您不会有问题,因为在自定义单元格视图上UI元素不会消失

标准表格单元格的UI元素不是由您控制的,这就是为什么您同时只能看到一个内置附件的原因。使用自定义单元视图时,将永远不会发生这种情况


我希望您熟悉自定义单元格视图,但如果您不熟悉,我也可以提供准确的代码,但我的想法是这样的。

UITableViewCell还有一个附加属性,
editingAccessoryView
,用于在单元格处于编辑模式时显示的视图


我不知道您是否可以将相同的UISwitch实例分配给
accessoryView
editingAccessoryView
属性,或者是否需要创建两个实例。(一个视图一次只能有一个父视图,但UITableViewCell实际上正在执行显示视图的工作,因此它可能足够聪明,可以处理这种情况。)

我尝试过对其帧进行mving,设置自动调整大小掩码,但它根本没有出现。似乎设置editing size=true就是将accessoryView设置为none?我相信我目前使用的是自定义单元格视图(来自故事板)。我已经添加了switchview作为自定义单元格的附件类型请参见我的问题中的编辑好的,我所做的工作很好:1。将
样式设置为
自定义
;2.将开关视图添加到自定义单元格中;3.将
附件
和“编辑附件”设置为
;四,。开关视图在
[self.tableview setEditing:true]
之后不会消失。。。很难说为什么它对您是错误的,因为我没有在界面生成器中看到UI设置。