Objective c 旋转UITableView中的旋转UITableView单元格
我没有实现一个笨重的、可能充满bug的自定义表,而是使用了更简单的rotate table选项。当我决定不初始化旋转的内容,而是旋转单元格本身并减少复杂单元格中的代码量时,问题就出现了 在单元配置之后立即显示以下行 这会导致每个单元在负载下旋转90°,而不管方向如何: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
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
。(在我尝试旋转细胞之前,宽度增加了。我认为它们没有关系。)啊!我的错误。应该有一个代码>在那里。编辑好了。这么说一切都好了,但我还是对桌子的东西迷路了。我想是新问题吧。