タイトルの通りです
もし解決法をご存知の方いらっしゃいましたらぜひコメントで教えてください
slicingって何って方は適当に検索して調べてください
ざっくり説明すると画像の一部だったり全体を縦横に引き伸ばしたり繰り返したりできる機能です
確認方法
適当な画像を用意し、slicingを設定し、UIImageViewで表示させます。
IB上の表示は以下の通り。比較のためにstretchの画像も並べてます。
良さそうですね。これが期待する結果です。ですが、シミュレータで実行してみると・・・
(位置の設定をちゃんとしなかったので、一部見切れたりしてるのは目を瞑ってください)
横方向のみは期待通りですが、縦方向は一番上、縦横方向は右上の一つしか画像が表示されません。
ちなみに実機でやっても同じように画像が一つしか表示されませんでした。ただし自分が試した限りでは6plus(iOS10)だけはIB通りに表示されました。
解決方法
UIImage
のresizableImage(withCapInsets:resizingMode:)
を使います。
ドキュメント
なんだよ結局コードでやるのかよ!という声が聞こえてきそうですが、これ以外にできる方法を見つけられませんでした。
おわりに
なぜこうなってしまうんでしょうか?IB上は期待通りに表示されるので、上手く行くもんだと思ってしまうじゃないですか
背景画像を縦横タイルでなんてよくありそうですが、皆さんどうされているんでしょうか?
6plus(iOS10)だけは上手く行ったのも不思議ですもっと端末とOSの組合せでちゃんと検証すべきですが、いかんせん面倒くさい時間が無く・・・
もしコード以外の解決方法を知っている方は、ぜひコメントでご教授ください