Retenableimagewithleftcapwidth растягивая неверные порции

StackOverflow https://stackoverflow.com/questions/2993172

  •  24-10-2019
  •  | 
  •  

Вопрос

Я пытаюсь использовать Uiimage с strectableimagewithleftcapwidth, чтобы установить изображение в моем Uiimageview, но сталкиваюсь с странной масштабирующей ошибкой. В основном изображение моего изображения как овал шириной 31 пиксель. Левая и правая 15 пикселей - это колпачки, а средний одиночный пиксель - масштабированная часть.

Это работает нормально, если я установил левую крышку на 15. Однако, если я установим ее, скажем, 4. Я ожидаю получить «центральную» часть, которая немного изогнута, когда охватывает центр, пока концы немного ущипнутый.

Что я получаю, так это левая крышка, казалось бы, правильная, за которой следует длинная средняя часть, которая, как будто я масштабировал один пиксель на Pixel 5, затем часть справа от изображения, где он расширяется и закрывается на ширину примерно вдвое превышающую ширину. исходного изображения. Полученное изображение похоже на термометр.

Кто -нибудь видел такое странное поведение и может знать, что происходит?

Это было полезно?

Решение

Ваше наблюдение верно, Джои. StrectableImagewithleftcapWidth не расширяет весь центр изображения, как вы ожидаете. Он только расширяет пиксельную колонку прямо от левой крышки и строки пикселей чуть ниже верхней крышки!

Вместо этого используйте свойство Uiview's ContentStrech, и ваша проблема будет решена. Еще одним преимуществом этого является то, что ContentStretch также может правильно смягчить графику, тогда как растяжение withleftcapwidth работает только при увеличении графика.

Другие советы

Не уверен, что я получил вас направо, но левая клетчатка и т. Д. Сделано для округлых углов, причем все в прямоугольнике в радиусе округления растягивается, чтобы соответствовать пространству между «крышками» на кнопке назначения или тому подобное.

Поэтому, если ваш овал выше или шире, чем 4 x 2 = 8, все, что находится в среднем прямоугольнике, будет растянуто. И у вас есть, так что это, по крайней мере, посмотрело бы на уродливые! Но если это даже не симметрично, что -то повлияло на растяжение. Может быть, что -то связано с происхождением или рамой, или когда оно установлено, или, может быть, это дважды установлено, или у вас есть два разных растянутых изображения друг на друга, что придает термометру.

Однажды я создал две идентичные кнопки в одном месте, используя тот же оставленный объект - конечно, выбрасывая предыдущую кнопку. Тогда я удивлялся, почему, черт возьми, кнопка не исчезала, когда я установил Альфа на 0 ... но это так, просто под ним была «мертвая» кнопка :)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top