Как реализовать scale-9 (9-slice) для пользовательского фонового искусства, созданного для UIButton

Что мне нужно сделать программно, чтобы использовать одно и то же фоновое изображение для UIButton переменного размера? (обычно известный как 9-slice scaling или scale-9)

2 ответов


проверить:

- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight

в классе UIImage.

Если я правильно понимаю, что вы ищете, это позволяет вам использовать один png для определения того, как выглядит ваша кнопка, и она будет растягиваться до любого размера по вертикали или горизонтали.


Я знаю, что это старая тема, но для тех, кто натыкается на это после выхода iOS 5, Следует отметить из документации Apple, что stretchableImageWithLeftCapWidth:topCapHeight: метод устарел с iOS 5:

Устаревшие Методы UIImage

устарел в iOS 5.0. Не одобрять. Используйте resizableImageWithCapInsets: вместо этого укажите вставки крышки, чтобы интерьер был 1x1 область.

Итак, теперь, когда iOS 6 была анонсирована и скоро будет здесь, любой, кто разрабатывает для iOS 5 и выше, вероятно, должен взглянуть на resizableImageWithCapInsets вместо этого, какую документацию можно найти здесь:

ссылка на класс UIImage-resizableImageWithCapInsets

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