2

resizableImageWithCapInsets がどのように機能するかを理解したかったので、この画像を見つけました

ここに画像の説明を入力

画像のサイズは 57x51 なので、このような画像を作成しました

image = [[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] 
pathForResource:@"PopoverViewBlackBackgroundArrowDown" ofType:@"png"]] 
resizableImageWithCapInsets:UIEdgeInsetsMake(25.0, 28.0, 25.0, 28.0)];

そして、このような画像ビュー

UIImageView *backgroundImageView = [[UIImageView alloc] initWithImage:image];
backgroundImageView.frame = CGRectMake(0.0f, 0.0f, 210.0f, 110.0f);
[self.view addSubview:backgroundImageView];

しかし、これが結果です

ここに画像の説明を入力

従来の UIPopoverController とは異なります。矢印もリサイズされています。

理由はわかりますか?

回答ありがとうございます。

4

1 に答える 1

1

あなたの問題は、エッジのインセットが正しく設定されていないことだと思います。あなたがしようとするべきことは、左右のインセットを移動して矢印領域の外側に座らせることです.

現時点では、画像の中央にある伸縮可能領域の幅を 0 に設定しているため、中央の矢印が 1 点で伸びています。上下のインセットは問題ないように見えるので、目指すのは次のようなものです。

resizableImageWithCapInsets:UIEdgeInsetsMake(25.0, 10.0, 25.0, 47.0)];

つまり、画像の左右に 10 ピクセルの余白があります。

それが役立つことを願っています

于 2012-06-08T12:56:58.373 に答える