私はShadowViewと呼ばれるUIImageViewサブクラスを持っています。これは何かの下で使用できる影を表示します。シャドウビューはペン先からロードされます。 initWithCoderでstretchableImageWithLeftCapWidth:topCapHeightは、UIImageViewサブクラスの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:と同様に実装されています。
別の編集:私は問題を解決したと思います。私は自動サイズ変更マスクを設定する必要がありました。
9ピクセル×9ピクセルと思う。中央の行と列。各辺に沿って帽子が付いています。 –