UIButton帧大小始终为零

时间:2013-03-12 14:28:11

标签: ios objective-c

所以我可能错过了一些明显的东西,但是我无法在我的

中创建一个正确的UIButton维度

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

功能:

callerPlayerBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[callerPlayerBtn setImage:[UIImage imageNamed:@"callPlayerBtn"] forState:UIControlStateNormal];
[self.view addSubview:callerPlayerBtn];   
NSLog(@"SIZES ARE %f %f", callerPlayerBtn.bounds.size.width, callerPlayerBtn.bounds.size.height);

我做错了什么?日志始终为0。我想访问它的维度来集中它。 感谢

3 个答案:

答案 0 :(得分:5)

我发现您使用buttonWithType:方法创建按钮,而不是使用nib。

如果你这样做,你需要自己设置框架。

callerPlayerBtn.frame = CGRectMake(originx, originy, width, height);

对于宽度和高度,您可以使用图像的大小来显示按钮。

答案 1 :(得分:1)

您应该设置按钮的框架也等于图像宽度&高度,如果您希望按钮的大小与图像相同,或者您也可以设置自定义自定义大小

[callerPlayerBtn setFrame:CGRectMake(x,y,buttonImage.size.width,buttonImage.size.height)];

答案 2 :(得分:0)

设置按钮的框架如下:

UIButton * callerPlayerBtn = [UIButton buttonWithType:UIButtonTypeCustom];
callerPlayerBtn.frame = CGRectMake(60, 10, 220, 25); //here we are setting frame
[callerPlayerBtn setImage:[UIImage imageNamed:@"callPlayerBtn"] forState:UIControlStateNormal];
[self.view addSubview:callerPlayerBtn];
NSLog(@"SIZES ARE %f %f", callerPlayerBtn.bounds.size.width, callerPlayerBtn.bounds.size.height);

日志值将是:

2013-03-12 20:02:30.394 SampleProject[591:16a03] SIZES ARE 220.000000 25.000000