我正在努力旋转UIBUtton的imageView属性而不缩放它。有问题的图像是24x18 - 宽度比它高 - 但是一旦旋转到位,图像就会被缩放以保持这些尺寸 - 留下一个非常挤压的图像。我该如何防止这种情况?
以下是我的代码..
-(IBAction)rotateButton
{
NSLog( @"Rotating button" );
[UIView beginAnimations:@"rotate" context:nil];
[UIView setAnimationDuration:.5f];
if( CGAffineTransformEqualToTransform( button.imageView.transform, CGAffineTransformIdentity ) )
{
button.imageView.transform = CGAffineTransformMakeRotation(M_PI/2);
} else {
button.imageView.transform = CGAffineTransformIdentity;
}
[UIView commitAnimations];
}
如果我将变换应用于按钮而不是button.imageView,则不会发生,因此我猜测它是imageView的一个属性,我没有设置正确。
你的线索&嘘声非常受欢迎
微米。
答案 0 :(得分:52)
在视图中的某个地方初始化视图时应用以下代码。这会有所帮助。你上面得到的答案不是一个真正的答案:)
button.imageView.clipsToBounds = NO;
button.imageView.contentMode = UIViewContentModeCenter;
答案 1 :(得分:3)
我发现在CocoaScripting.framework
工作期间继承UIButton
以删除转换,如下所示:
layoutSubviews
答案 2 :(得分:1)
我已经看到UIButtons的UIImageView属性表现得非常奇怪 - 似乎它们的一些属性是只读的,包括你在这里谈论的UIViewContentMode设置。
我发现的最佳解决方案是使用单独的UIImageView模仿“包含图像的按钮”设置,并在其上面设置一个空的自定义样式的UIButton。使您可以更灵活地管理图像。