2013-02-14 9 views
0

Я использовал растяжимые изображения раньше и всякий раз, когда я их использую, мне нужно вручную вводить вставки на крышке, и если я ошибаюсь, изображение выглядит неправильно.UIImage resizableImageWithCapInsets cap data

Есть ли способ «вживления» данных крышки в некоторый файл, который затем можно читать вместе с изображением.

т.е.

UIImage *image = [UIImage loadResizableImageWithFile:"someFile"]; 

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

ответ

0

Использование stretchableImageWithLeftCapWidth Способ достижения этого. Предоставлен образец кода.

CGSize imgSize = stretchableImage.size; 
if ([stretchableImage respondsToSelector:@selector(stretchableImageWithLeftCapWidth:topCapHeight:)]) { 
    stretchableImage = [stretchableImage stretchableImageWithLeftCapWidth:(imgSize.width/2.0) - 1 topCapHeight:(imgSize.height/2.0) - 1]; 
} else { 
    stretchableImage = [stretchableImage resizableImageWithCapInsets:UIEdgeInsetsMake((imgSize.height/2.0) - 1, (imgSize.width/2.0) - 1, (imgSize.height/2.0) - 1, (imgSize.width/2.0) - 1)]; 
} 
+0

Этот метод является устаревшим, так как IOS 5. Я знаю, как использовать его. В вашем примере вы вручную напечатали размер шапки. Этого я пытаюсь избежать. Таким образом, дизайнер может предоставить файл plist или что-то еще. – Fogmeister

0

iOS не предлагает механизм для встраивания растягиваемых частей в самом изображении.

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

Быстрый поиск здесь на переполнение стека приводит к an answer, что ссылки на альтернативный IOS: Tortuga22-NinePatch (Apache лицензированной)