2012-08-22 59 views
3

我很难搞清楚我可以调整UIButton的imageView属性。在文档中,它说:调整UIButton的imageView属性

尽管此属性是只读的,但它自己的属性是可读/写的。使用这些属性来配置按钮视图的外观和行为。

我希望执行一个过渡,我缩小动画中按钮的大小,并且我希望按钮的图像也相应地缩小。但是,我发现我无法控制该图像的大小。如果我修改框架或UIButton的imageView属性的边界,似乎没有任何事情发生。图像似乎想保留它的标准尺寸。更改按钮上imageView或contentMode属性的自动布局属性似乎也没有帮助。

事实上,似乎唯一可行的是使用UIEdgeInsetsMake来“挤压”来自各方的图像,但这不是可动画的。

我不想使用backgroundImage属性,因为我已经在使用它来设置按钮的样式。

回答

3

您可以将自己的UIImageView作为子视图添加到UIButton中,而不是使用“嵌入”imageView。 您可以像通常相对于周围的UIButton一样设置“您的”图像视图的框架。你将完全控制它的位置,你也可以对它进行动画处理。

+0

对我来说似乎很奇怪,有必要这样做,但对于解决方法来说是个好主意。 – beno

+1

对于iOS7,您可以使用imageEdgeInsets,例如'[self.rightBarButton setImageEdgeInsets:UIEdgeInsetsMake(0.0,self.rightBarButton.frame.size.width - image.size.width - 10.0,0.0,0.0)];' – JohnQ