好的,首先关闭 - 我希望我的单元格在编辑模式下看到我的UItableView(带有一些更好的按钮):
然而 - 这就是它现在的样子:
我的问题是我的自定义EditingAccessoryView只出现在我最初创建的单元格上,并且出现了那些圆形的东西(那些叫做什么?)。哪个做得不好。
现在,我的代码看起来像这样(这似乎是执行此操作的常用方法,例如在此问题中看到:How to add Custom EditingAccessoryView for UITableView?)
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
cell.editingAccessoryView = AccessoryView;
AccessoryView.backgroundColor = [UIColor clearColor];
}
我已经读过,即使- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
返回“NO”,您也可以通过滑动调用自定义editingAccessoryView。然而,我无法实现这一目标。
所以,总结一下;我希望我的editingAccessoryView显示在所有单元格中 - 如果可能,请删除红色圆圈。或者,或者,当我滑动时调用我的editingAccessoryView - 当用户执行此操作时调用哪个方法?
非常感谢任何帮助。
答案 0 :(得分:1)
我建议你继承表格单元格并覆盖以下方法
- (void)layoutSubviews
{
if([self isEditing])
{
// your custom stuff
[self.contentView addSubview:myButton];
}
}
答案 1 :(得分:0)
而不是在cellForRowAtIndexPath
中设置所有这些....执行此操作。
在cellForRowAtIndexPath
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}
并在
中设置您的配件视图 - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the row from the data source
NSLog(@"Am I Editing");
UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
selectedCell.editingAccessoryView = AccessoryView;
AccessoryView.backgroundColor = [UIColor clearColor]
}
else if (editingStyle == UITableViewCellEditingStyleInsert) {
// Create a new instance of the appropriate class,
// insert it into the array, and add a new row to the table view
}
}
答案 2 :(得分:0)
您需要为每个单元格创建一个新的附件。
答案 3 :(得分:0)
要删除红色圆圈,您可以在
中返回UITableViewCellEditingStyleNone
- (UITableViewCellEditingStyle)tableView:(UITableView*)tableView editingStyleForRowAtIndexPath:(NSIndexPath*)indexPath;
但在这种情况下,该圈子的空白空间仍然存在。我几乎可以肯定,它也可以删除。
我的问题是我的自定义EditingAccessoryView只出现在我第一次创建的单元格上
尝试为每个单元格实例化新的AccessoryView
,而不是使用相同的单元格。