我正在尝试将UIButton的titleLabel旋转45度。文本中的字符是“+”。
我可以用
来旋转标题
button.titleLabel?.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_4))
但是,“+”符号的一端会被剪裁,如下面的屏幕截图所示。
我找到this,但我无法完全解决问题的解决方法。奇怪的是,剪切的部分仍然存在于另一端的边界内 - 它不会突出于符号的“正方形”之外。
我也尝试使用Facebook的Pop库,这种方式有用,除了我无法弄清楚如何进行正常的逆时针或顺时针旋转。我将kPOPLayerRotation
与M_PI_4
一起使用,它做了一些意想不到的事情。如果有人能提供基本的顺时针/逆时针旋转的示例代码,我很乐意使用Pop。
可能相关的问题:titleLabel的中心也会移动。有没有一种简单的方法可以防止这种情况发生?
非常感谢你的帮助。
答案 0 :(得分:1)
您正在旋转按钮的titleLabel,它位于按钮内部。按钮没有旋转。但标签是旋转的。因此,您正在获得标签的剪辑或中心错位。我建议你旋转按钮本身。所以它也会旋转它的子视图。
// Check already it was rotated,transformed...?
if (CGAffineTransformIsIdentity(button.transform)) {
//Yes, Reset to the original position and size.
button.transform = CGAffineTransformIdentity;
}
//Apply rotation now
button.transform=CGAffineTransformMakeRotation(M_PI_4);
答案 1 :(得分:0)
对于将来参加此活动的人,我最终创建了一个新的UIView(蓝色矩形),其中包含UIButton(白色' +')。然后我在UIButton上禁用了使用的交互,并为UIView添加了一个手势识别器。当我想旋转' +'时,我旋转了整个UIButton(但不包含UIView)。