0

所有,我正在使用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

UITableView 单元格内容超出屏幕

4

2 回答 2

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;
}
于 2012-10-03T07:42:34.140 回答
0

你遇到了两个问题,泰穆尔。

1)您需要将delegate表的“”设置为包含这些委托方法的任何对象(可能是您的视图控制器)。您可以通过编程方式或通过 XIB / 故事板中的连接来执行此操作。

2)如果您使用的是自定义单元格,则需要向下调整字体大小以保存要显示的所有数据。

如果您没有使用自定义 UITableViewCell 对象来显示表格中的数据,那么请开始使用它们,以便获得您真正想要看到的格式。

于 2012-10-03T07:35:52.770 回答