2010-05-08 84 views
6

我有以下代码。UIButton的自定义图像和框架

UIImage *cancelImg = [UIImage imageNamed:@"cancel.jpeg"]; 
    UIButton *btnCancel = [UIButton buttonWithType:UIButtonTypeCustom]; 
    btnCancel.userInteractionEnabled = YES; 
    [btnCancel setFrame:CGRectMake(0.0,0.0, 28.0, 28.0)]; 
    [btnCancel setImage:cancelImg forState:UIControlStateNormal]; 
    cell.accessoryView = btnCancel; 

cancel.jpeg目前超过28×28更大,它实际上是100×100

为什么按钮显示100×100大小的时候,我设置的UIButton的大小以28的图像x 28?

+0

我不得不将图像大小调整为28 x 28。我只是认为UIButton的框架会将100 x 100图像填充到28 x 28。不要猜测。 – 2010-05-08 03:28:35

回答

13

该按钮的image不会重新调整比例。如果您需要重新缩放,请设置为backgroundImage

[btnCancel setBackgroundImage:cancelImg forState:UIControlStateNormal]; 
+0

非常有帮助的答案。 – pmk 2013-01-26 21:40:21

3

此行为必须已经更改,因为上述代码在iOS 4.2上生成缩小按钮。

+0

当。我实际上想要从原始帖子的行为。感谢您发布此信息。 – AndrewKS 2011-03-29 20:43:53

0

我一直在使用定制按钮在iOS 5中进行试验,定制按钮在设备方向更改时进行自动调整。我设置了一个backgroundImage和一个图像,与按钮的初始边界相同,我看到的是backgroundImage调整大小,图像没有调整,但仍然保持居中在按钮的框架中。