私は、ShadowView と呼ばれる UIImageView サブクラスを持っています。これは、何の下でも使用できる影を表示します。ShadowView は nib からロードされます。
initWithCoder: には、次のコードがあります。
- (id)initWithCoder:(NSCoder *)decoder {
self = [super initWithCoder:decoder];
if (self != nil) {
UIImage *shadowImage = [[UIImage imageNamed:@"drop_shadow_4_pix.png"] stretchableImageWithLeftCapWidth:4 topCapHeight:4];
[self setContentMode:UIViewContentModeScaleToFill];
[self setImage:shadowImage];
}
return self;
}
ただし、アプリを実行すると、この画像は表示されません。
しかし、私がそれを
...
UIImage *shadowImage = [UIImage imageNamed:@"drop_shadow_4_pix.png"];
...
正常に動作しますが、ストレッチが間違っています。
なぜこれが起こっているのかについてのアイデアはありますか?
編集: initWithFrame:をinitWithCoder:と同様に実装して、シャドウビューをプログラムでロードする場合と同じです。
別の編集:問題を解決したと思います。自動サイズ変更マスクを設定する必要がありました。