我想创建具有“旋转”效果的UICollectionViewCell
,我这样做是通过将其旋转到中心来实现的:
func degreesToRadians(degrees: Double) -> CGFloat {
return CGFloat(Double.pi * (degrees / 180.0))
}
class TimbreLayout: UICollectionViewFlowLayout {
override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
var layoutAttributes = super.layoutAttributesForElements(in: rect) as! [UICollectionViewLayoutAttributes]
for attribute in layoutAttributes {
attribute.transform = CGAffineTransform.init(rotationAngle: degreesToRadians(degrees: -6))
}
return layoutAttributes
}
}
到目前为止,到目前为止,我想计算出单元格旋转后可以看到的“白色”空间,因此我可以将其宽度增加相同的数量。我猜想这涉及一些数学知识,这些知识不足以应对。
答案 0 :(得分:1)
给出:
w
a
需要:
cw
解决方案:
cw = 2 * (w / cos(a) - w)
注意::只能在较小的角度工作(如果将单元格旋转到360,则不会工作)。我也只在calc中测试了它:)。因此,您可能需要仔细检查。