現在、.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: は他の viewController で正常に機能したので、ここで何が起こっているのか疑問に思っています。
それは数時間続けて私を悩ませている、小さいながらも重大な問題です...
編集: AutoLayout をオフにすると、サイズ変更が機能しました。しかし、それは他の多くの問題を引き起こします...