2011-12-01 95 views
12

下面的代碼瓦片指定插圖內的圖像面積:如何在iOS5之前做[UIImage resizableImageWithCapInsets:]?

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

然而,這僅適用於iOS5的。我如何才能達到與iOS5兼容前的相同結果?

[UIImage stretchableImageWithLeftCapWidth: topCapHeight:]根據我的理解是不合適的,因爲它假設tileable區域是1px寬。換句話說,它不會平鋪,它會延伸。因此它不適用於模式,只適用於單色圖像。這在下面的屏幕截圖中演示。

再有就是[UIColor colorWithPatternImage:],但這種假設整個圖像需要被平鋪,它不允許對於必須保持皚皚的插圖。

任何幫助表示讚賞,謝謝。

enter image description here

+0

我有完全相同的問題。一方面,他們在iOS 5中固定它。另一方面,我很難想出一個直接的方式來添加這個功能,所以它可以在iOS 4中工作。你決定做什麼? –

+0

在這個功能之前,圖像設計師是否忙於構建按鈕? – Ellis

回答

2

我一直在尋找一個解決方案,這也。在這一點上,我想我會使用原始UIImage上的respondsToSelector:@selector(resizableImageWithCapInsets:)來查看該方法是否可用。如果不是,則使用可拉伸的圖像。

我還在尋找一個更好的解決方案,如果一個出現,我會更新的答案。