2016年8月30日 星期二

[Objective-C] 類似9-Patch圖於iOS上實作

Android裡面會使用9-Patch圖片來顯示一些圖片,

最常見的例子就是按鈕,舉例來說,類似這樣的按鈕圖片










正常來說可能只會給一張圖片,然後各裝置幾乎都是套用此圖片,因此在某些情況下,可能會有稍微失真的情況。

此時如果使用9-Patch圖,就不會有這樣的問題了。

9-Patch圖是標示頭尾,以及重複區段,頭尾顯示後,中間都已重複區段來填滿。

可能會長這個樣子,然後標示中間的部分是重複區段。







這樣就能避免失真的情況發生,但是9-Patch在iOS目前並不支援。

但是你可以使用resizableImageWithCapInsets這個方法來達到相似的效果。

你只需要像以下的程式碼就可以達成。



在實際執行時,你會看到畫面會像這個樣子。



























如此一來你也能得到類似9-Patch的效果了。

只是你要自己去量哪部分需要重複顯示,有這麼點麻煩而已。

這個範例可以在我的Github中下載

https://github.com/Aiur3908/ObjectiveC-SampleCode

裡面的ResizableImage就是了。


沒有留言:

張貼留言