进入编辑模式时,请避免自动调整uitableview单元格内容视图的大小

时间:2012-06-12 21:48:40

标签: ios uitableview

我有一个包含一些自定义视图的内容视图的uitableviewcell。 当表格视图进入编辑模式时,内容视图会调整大小(变得更窄),内容视图中的图像会水平缩小

有谁知道如何防止这种情况?

我已将单元格缩进设置为无。

由于

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

您是否尝试在视图上设置自动调整大小的蒙版?

theView.autoresizingMask = UIViewAutoresizingNone;

您可能需要在内容视图和/或图像视图中进行设置 - 不清楚视图层次结构的确切结构。但是,框架可能会被框架明确设置(而不是自动调整大小),在这种情况下,这将不起作用。

如果您要为整个表格单元格设置背景图像,您可能还想尝试另一种方法来设置单元格的backgroundColor,如下所示:

UIImage* someImage = [UIImage imageNamed:@"someImage"];
cell.backgroundColor = [UIColor colorWithPatternImage:someImage];

请务必确保您放置的所有其他观看内容的backgroundColor均为[UIColor clearColor],以便您可以看到背景图片。

答案 2 :(得分:0)

您始终可以获得带有索引路径的tableviewcell。使用该tableviewcell reuseidentifier,您可以避免调整tableview单元格的内容大小。我需要实现类似的功能,以避免单独的单元格大小调整。 PFB代码。

-(BOOL)tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath{

BOOL shouldIndentWhileEditingRow = NO;

UITableViewCell *lTableViewCell = [tableView cellForRowAtIndexPath:indexPath];

/*Change the position of the target rect based on Sending messages or Receiving messages*/
if ([lTableViewCell.reuseIdentifier isEqualToString:@"SendingChatCellIdentifier"]) {

    shouldIndentWhileEditingRow = NO;

}else if ([lTableViewCell.reuseIdentifier isEqualToString:@"ReceivingChatCellIdentifier"]){

    shouldIndentWhileEditingRow = YES;
}

return shouldIndentWhileEditingRow;
}

答案 3 :(得分:0)

我做了类似的事情,以避免在使用单元格自动标注时调整单元格内容的大小。

我的问题是在选择之后,单元格内的textView将其内容包装在更多行中,我只是想避免这种情况。

要解决此“问题”:

  • 我在单元格内容中添加了40px(附件视图的大小)的尾随约束
  • 在单元格选择中,我将约束更改为0,因此文本大了40 px,但是随着附件显示,您看不到任何更改。

该解决方案的优点是,当用户选择一行时,内容维度不再更改。 缺点是您在单元格的右侧始终有40px的可用空间,即使未选中也是如此。