我目前正在尝试使用放置在 .xib 文件上的 UIImageView 表示的 HP 仪表来编写游戏。我声明我的 IBOutlet 如下:
@property (weak, nonatomic) IBOutlet UIImageView *hpGaugeView;
并据此合成。它还链接到 xib 中的 UIImageView 实例。
在 xib 中,我将 hpGaugeView 的长度设置为 188,将高度设置为 9。
现在这就是我在 viewDidLoad 中所做的:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[hpGaugeView setFrame:CGRectMake(49, 18, 123, 9)];
NSLog(@"%f, %f", [hpGaugeView frame].size.width, [hpGaugeView frame].size.height);
}
虽然 NSLog 告诉我 hpGaugeView 的宽度是 123,但当我运行它时,与 xib 中的长度相比,长度似乎没有变化。所有其他 setFrame: 或 setBound: 在其他 viewControllers 中工作正常,所以我只是想知道这里发生了什么。
这是一个小而关键的问题,连续困扰了我几个小时......
编辑:当我关闭 AutoLayout 时,调整大小起作用了;虽然它会产生许多其他问题......