我正在创建一个 UITableview 并应用转换 -M_PI_2 以便 tableview 水平滚动。
每个单元格也旋转了 M_PI_2,以便在水平模式下正确显示。 当我用数据初始化它时,这些单元格是完美的。一切正常。
现在我将 tableview 高度调整为原始高度的 75% 并将其向下移动 25%,上半部分单元格被隐藏(我在 tableview 上设置了 clipstobounds)。
我使用函数 setFrame:
即使在 [tableview reload]
之后也不会改变。
既然父级(tableview)被移动并调整了大小,子级(cells)不应该相对于它移动吗?
如果不是,那么执行以下操作的正确方法是什么:
- 为水平滚动填充一个 uitableview 和 tranform
- 根据用户输入调整框架大小
- 单元格还应根据 uitableview 的新框架自行对齐。
最佳答案
当您应用这样的变换时,您正在旋转层,因此您需要了解 CALayer
几何和 UIView
几何之间的差异
苹果 Layer Geometry文档对此进行了很好的描述,但基本上我认为您需要调整 View 层的 anchorPoint 值
self.viewToRotate.layer.anchorPoint = CGPointMake(0.0f, 0.0f); //not sure of the actual value here
关于iphone - 移动 tableview 时裁剪 UITableviewcell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12160617/