posted by dalnimbest 2013. 5. 11. 23:11

같은 형태의 이미지이지만 컨트롤의 넓이에 따라서 이미지를 여러개 만들어야할경우에는 이미지를 한개 만들어두고 늘여서 쓰면 된다. 영어로는 stretchable images라고 한다.

stretchable image를 사용하면 최소크기의 이미지를 한개 만들어서 사용하기 때문에 이미지 때문에 용량이 크지는것을 방지하여 용량측면에서도 이득이 있다.

stretchable image는 3개 부분으로 구분되어 있는데 왼쪽, 가운데, 오른쪽으로 나눌수 있는데, 왼쪽 오른쪽을 각각 left cap, right cap이라고 부른다. 실제로 늘어나는 이미지(stretchable)는 가운데 부분으로 보통 1pixel로 만든다.

<stretchImage.png 이미지>

                                  https://a248.e.akamai.net/camo.github.com/fa6222d5c3156dd454fad97410e5e91b7aba2020/687474703a2f2f69646576726563697065732e66696c65732e776f726470726573732e636f6d2f323031302f31322f627574746f6e2e706e673f773d313126683d3330

이런 형태의 이미지를 한개 만들어 두면 된다.
이경우 이미지의 총 넓이는 11pixel일때, left cap이 5pixel이고 middle은 1pixel, right cap은 left cap과 같아야 한다.(left cap과 right cap이 다를경우는 어떻게 해야할지 모르겠다.)

//소스 코드
UIImage* stretchImg =[[UIImage imageNamed:@"stretchImage.png"] stretchableImageWithLeftCapWidth:5.0 topCapHeight:0.0]
UIImageView* imageView = [[UIImageView alloc] initWithImage:stretchImg]; imageView.frame = CGRectMake(0, 0, 100.0, stretchImg.size.height);


<결과 Image>
https://a248.e.akamai.net/camo.github.com/66842c8beec27aaa76d5cef1b627021db6aec28e/687474703a2f2f69646576726563697065732e66696c65732e776f726470726573732e636f6d2f323031302f31322f7374726574636865645f627574746f6e2e706e673f773d33303026683d3330