Как работает UIEdgeInsetsMake?


Я делаю приложение, где я использую UIEdgeInsetsMake на resizableImageWithCapInsets, но я не понимаю, как это работает именно,UIEdgeInsetsMake имеет 4 аргумента:

  • Top
  • левый
  • дно
  • право

но они плавают, поэтому я не знаю, как установить это на изображение, спасибо! : D

3 58

3 ответа:

согласно документации:

этот метод используется для добавления вставок колпачка к изображению или для изменения существующих вставок колпачка изображения. В обоих случаях вы получаете новое изображение, а исходное изображение остается нетронутым.

во время масштабирования или изменения размера изображения области, покрытые колпачком, не масштабируются и не изменяются. Вместо этого область пикселей, не покрытая крышкой в каждом направлении, выложена плиткой слева направо и сверху вниз, чтобы изменить размер изображения. Этот техника часто используется для создания кнопок переменной ширины, которые сохраняют те же закругленные углы, но центральная область которых растет или сжимается по мере необходимости. Для лучшей производительности используйте плиточную область размером 1x1 пиксель.

так что вы должны использовать только количество пикселей, которые вы хотите сделать нерастягивающуюся в значениях .


[EDIT] некоторые советы я использую с некоторых пор, как я никогда не помню, в каком порядке поля UIEdgeInsets структура есть-и в каком порядке мы должны передавать аргументы

но они плавают, поэтому я не знаю, как установить это на изображение

это метод экземпляра UIImage. Итак, как вы используете resizableImageWithCapInsets чтобы создать изображение, нужно начать с отправки этого сообщения до изображение (UIImage).

прохладный новая функция: обратите внимание, что если края вставки все равны нулю, изображение будет выложено плиткой. Это работает в качестве фона для всего, что принимает фоновое изображение. Он даже работает в UIImageView.

Я просто прохожу через эту статью, которая очистила всю мою концепцию относительно UIEdgeInsetsMake

iOS: Как сделать растяжимую кнопку с помощью UIEdgeInsetsMake