我正在尝试在 tableview 上进行旋转以倾斜桌子(以产生类似于星球大战开幕式爬行的 3d 文本爬行效果)。
环顾四周后发现这个问题objective-с CALayer UIView real rotation
并且接受的答案似乎做了我想要的,但是当我将代码应用到我的 TableView 时,它什么也不做,表格像往常一样出现。
这是我正在复制的代码:
float distance = 50;
CATransform3D basicTrans = CATransform3DIdentity;
basicTrans.m34 = 1.0 / -distance;
_tableView.layer.transform = CATransform3DRotate(basicTrans, M_PI_4, 1.0f, 0.0f, 0.0f);
在创建我的字符串数组(填充 tableView)后,我将它放在我的 viewDidLoad 方法中
我目前在 Controller 中只有三个其他方法:
didReceiveMemoryWarning(项目创建时自动添加)
tableView: numberOfRowsInSelection (用于设置表格视图) tableView: cellForRowAtIndexPath (用于设置表格视图和设置单元格文本形成数组)
我的理解是 tableview 有一个 CALayer,并且 CATransform3D 操纵它以在 3d 空间中表示视图。如果我的理解是正确的,那么我不明白为什么列表会正常显示在屏幕上?我很欣赏我还没有给出我想要的效果的数字,但它们至少应该影响 tableView 在屏幕上的外观。
我还导入了 QuartzCore 等并将其添加到链接框架中
解决方案是在检查单元格是否为空后,在 - (UITableViewCell *)tableView: cellForRowAtIndexPath: 方法中使用标记为 OLD 答案的代码。