Подтвердить что ты не робот

Как сделать [UIImage resizableImageWithCapInsets:] до iOS5?

Следующий код разбивает область изображения внутри указанных вставок:

UIEdgeInsets imgInsets = UIEdgeInsetsMake(10.f, 5.f, 13.f, 44.f);
UIImage *image = [[UIImage imageNamed:@"fileName"] resizableImageWithCapInsets:imgInsets]; 

Однако это доступно только в iOS5. Как я могу достичь того же результата для совместимости до iOS5?

[UIImage stretchableImageWithLeftCapWidth: topCapHeight:] не подходит, насколько я понимаю, потому что он предполагает, что область, пригодная для плитки, имеет ширину 1px. Другими словами, он не плит, он растягивается. Поэтому он не работает с шаблонами, только с одноцветными изображениями. Это показано на скриншоте ниже.

Тогда существует [UIColor colorWithPatternImage:], но это предполагает, что все изображение должно быть выгравировано, оно не позволяет вставки, которые должны оставаться закрытыми.

Любая благодарность, спасибо.

.

enter image description here

4b9b3361

Ответ 1

Я тоже искал решение. На этом этапе я думаю, что я использую respondsToSelector:@selector(resizableImageWithCapInsets:) в исходном UIImage, чтобы узнать, доступен ли этот метод. Если нет, используйте растягиваемое изображение.

Я все еще ищу лучшее решение, и, если кто-то подходит, я обновлю ответ.