全部, 我正在使用 UITableview 并尝试实施编辑/删除功能。
当我打电话给这一行时。
[tblStoreAvail setEditing:TRUE animated:TRUE];
单元格的内容超出了屏幕。
永远不会调用这些函数。
- (void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath
- (void)tableView:(UITableView *)tableView didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
答案 0 :(得分:1)
如果您使用custuomTableViewCell,请使用您所需的标签框架实现以下方法:
- (void)willTransitionToState:(UITableViewCellStateMask)state
{
[super willTransitionToState:state];
if(state == UITableViewCellStateDefaultMask)
{
[self.lblLocation setFrame:CGRectMake(13,22,302,21)];
}
else if(state == UITableViewCellStateShowingDeleteConfirmationMask)
{
[self.lblLocation setFrame:CGRectMake(13,22,245,21)];
}
else if(state == UITableViewCellStateShowingEditControlMask)
{
[self.lblLocation setFrame:CGRectMake(13,22,245,21)];
}
else
{
[self.lblLocation setFrame:CGRectMake(13,22,210,21)];
}
}
如果您使用默认的TableViewCell,那么请确保为tableView设置委托,并执行以下操作:
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
yourCustomCell *cell = (yourCustomCell *)[tableView cellForRowAtIndexPath:indexPath];
[cell.lblLocation setFrame:CGRectMake(13,22,302,21)];
return YES;
}
答案 1 :(得分:0)
你有两个问题,Taimur。
1)您需要将表的“delegate
”设置为包含这些委托方法的任何对象(可能是您的视图控制器)。您可以通过编程方式或通过XIB /故事板中的连接来执行此操作。
2)如果您使用的是自定义单元格,则需要调低字体大小以容纳您想要显示的所有数据。
如果你没有使用自定义UITableViewCell对象来显示表格中的数据,那么就开始使用它们,这样你就可以获得你真正想要看到的格式。