0

所以我可能遗漏了一些明显的东西,但我无法获得在我的

- (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. 我想访问它的维度以使其居中。谢谢

4

3 回答 3

5

我看到您正在使用buttonWithType:方法而不是使用 nib 创建按钮。

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

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

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

于 2013-03-12T14:31:48.143 回答
1

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

[callerPlayerBtn setFrame:CGRectMake(x,y,buttonImage.size.width,buttonImage.size.height)];
于 2013-03-12T14:32:42.623 回答
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
于 2013-03-12T14:33:16.273 回答