Objective c 旋转UITableView中的旋转UITableView单元格

Objective c 旋转UITableView中的旋转UITableView单元格,objective-c,uitableview,rotation,Objective C,Uitableview,Rotation,我没有实现一个笨重的、可能充满bug的自定义表,而是使用了更简单的rotate table选项。当我决定不初始化旋转的内容,而是旋转单元格本身并减少复杂单元格中的代码量时,问题就出现了 在单元配置之后立即显示以下行 这会导致每个单元在负载下旋转90°,而不管方向如何: cell.transform = (CGAffineTransform)CGAffineTransformRotate(cell.transform, (M_PI / 2.0)); cellRotated = YES

我没有实现一个笨重的、可能充满bug的自定义表,而是使用了更简单的rotate table选项。当我决定不初始化旋转的内容,而是旋转单元格本身并减少复杂单元格中的代码量时,问题就出现了

在单元配置之后立即显示以下行

这会导致每个单元在负载下旋转90°,而不管方向如何:

cell.transform =
      (CGAffineTransform)CGAffineTransformRotate(cell.transform, (M_PI / 2.0));

cellRotated = YES;
此选项仅旋转第一个单元格一次,但保留旋转:

if (!cellRotated) {
    cell.transform =
      (CGAffineTransform)CGAffineTransformRotate(cell.transform, (M_PI / 2.0));

    cellRotated = YES;
}
是否可以使用现有功能(或其集合)跟踪单元方向

我在谷歌上找不到这方面的任何信息。有一些相关的问题,但主要是关于表和纵向/横向UI方向的,因此反向旋转的实现有点不同


编辑

如果我将
cellRotated=YES
移动到
viewdide:
除一个单元格外的每个单元格都会旋转。(在这种情况下,单元重用使得每六个单元都是独立的。)
1-5是好的,6是坏的,7-11是好的,12是坏的,等等(当我到达桌子的末端时,它以一种完全合乎逻辑但完全不需要的模式变化)


我不知道是走到一半还是后退一步,但这就是我现在所拥有的。

如果旋转是唯一的变换,那么为什么不这样做呢

cell.transform = CGAffineTransformMakeRotation(M_PI/2.0);
然后呢,

if ( !CGAffineTransformIsIdentity (cell.transform) ) {
    // Rotated.
}

这样做的原因是什么?我这样问是因为可能还有其他方法可以达到这个效果。@mackross正如我所说的,我希望有相对简单的代码来允许水平滚动表。旋转工作台,然后反向旋转单元格。两件作品几乎在任何地方都能发挥作用,而在非常特殊的情况下只有六件作品能发挥作用。可重用代码很好是的,还有其他的方法,但是单元格旋转是插入到另一个项目中最快、最容易的方法。是的,就是这样。谢谢,迪帕克编辑:我只需要第一行。更好现在让桌子正常运转。由于某种原因,它的宽度一直在增加。增加?准确地说,您可以尝试用
M_PI_2
交换
M_PI/2.0
。如果变换不是恒等式,
frame
属性是未定义的。对,对。我误读了
if
。(在我尝试旋转细胞之前,宽度增加了。我认为它们没有关系。)啊!我的错误。应该有一个
在那里。编辑好了。这么说一切都好了,但我还是对桌子的东西迷路了。我想是新问题吧。