間違った部分を伸ばしている伸縮性のあるlettingimagewithleftcapwidth
-
24-10-2019 - |
質問
UiimageViewで画像を設定するために、伸縮性のあるuiimageを使用してUiimageを使用して、画像を設定しようとしていますが、奇妙なスケーリングバグに遭遇しています。基本的に、私の画像を幅31ピクセルの楕円形として描いてください。左右の15ピクセルはキャップで、中央のシングルピクセルはスケーリングされた部分です。
これは、左キャップを15に設定した場合に正常に機能します。ただし、たとえば、4に設定すると、中心に及ぶ「中心」の部分を取得することが期待されます。ピンチ。
私が得るのは、左のキャップが一見正しいと思われ、その後、ピクセル5で単一のピクセルをスケーリングしたかのように長い中央部分が続き、次に幅の約2倍の幅を拡張して閉じる画像の右側にある部分が続きます。元の画像の。結果の画像は、温度計の電球のようなものです。
誰かがこのような奇妙な行動を見て、何が起こっているのか知っているかもしれませんか?
解決
あなたの観察は正しいです、ジョーイ。 restrentableimagewithleftcapwidthは、予想どおり画像の中心全体を拡張しません。左キャップのすぐ右のピクセル列と、上部キャップのすぐ下のピクセル列のみを展開します!
代わりにuiviewのコンテンツストレッチプロパティを使用すると、問題が解決します。これのもう1つの利点は、ContentsTretchがグラフィックを適切に縮小できるのに対し、StretchableImageの伸びがグラフィックを大きくする場合にのみ機能することです。
他のヒント
私があなたを正しくしたかどうかはわかりませんが、丸い角のために左のキャップ装備などが作られており、丸い半径内の長方形のすべてが伸びて宛先ボタンの「キャップ」の間のスペースに合うように伸びます。
したがって、楕円形が4 x 2 = 8より背が高いか幅が広い場合、中央の長方形にあるものは何でも伸びます。そして、あなたはそうですので、それは少なくとも少しugいを見るでしょう!しかし、それが対称的でさえない場合、何かがストレッチに影響を与えました。 OriginまたはFrameに関係すること、または設定されている場合、または2回設定されている場合、または温度計の外観を与えている2つの異なるストレッチ画像が互いに上にあります。
同じ場所に2つの同一のボタンを作成し、同じ保持されたオブジェクトを使用して作成しました。もちろん、前のボタンを捨てます。それから私は、なぜアルファを0に設定したときにボタンが消えなかったのだろうと思いました...しかし、それはちょうどその下に「死んだ」同一のボタンがあったということです:)