UIEdgeInsetsMake는 어떻게 작동합니까?
나는 내가 사용하는 응용 프로그램 만들고 있어요 UIEdgeInsetsMake위해를 resizableImageWithCapInsets,하지만 난 정확히 작동하지 이해가 안 돼요 UIEdgeInsetsMake사 개 인수가 :
- 상단
- 왼쪽
- 바닥
- 권리
그러나 그들은 수레이기 때문에 그것을 이미지로 설정하는 방법을 모르겠습니다. 감사합니다! :디
문서에 따르면 :
이 방법을 사용하여 이미지에 캡 삽입을 추가하거나 이미지의 기존 캡 삽입을 변경합니다. 두 경우 모두 새 이미지로 돌아가고 원본 이미지는 그대로 유지됩니다.
이미지의 크기를 조정하거나 크기를 조정하는 동안 캡으로 덮인 영역은 크기가 조정되거나 크기가 조정되지 않습니다. 대신 각 방향에서 캡으로 덮이지 않은 픽셀 영역은 이미지 크기를 조정하기 위해 왼쪽에서 오른쪽으로, 위에서 아래로 바둑판 식으로 배열됩니다. 이 기술은 동일한 둥근 모서리를 유지하지만 필요에 따라 중앙 영역이 늘어나거나 줄어드는 가변 너비 버튼을 만드는 데 자주 사용됩니다. 최상의 성능을 얻으려면 크기가 1x1 픽셀 영역 인 타일 영역을 사용하십시오.
따라서 UIEdgeInsetsMake함수 값에서 늘릴 수 없게 만들고 싶은 픽셀의 양만 사용하면 됩니다.
21x50 포인트 (표준 화질의 21x50 픽셀, Retina '@ 2x'화질의 42x100 픽셀)의 이미지가 있고 이미지를 늘릴 때 왼쪽과 오른쪽의 10 개 지점을 그대로 유지하면서이 이미지를 가로로 늘릴 수 있기를 원한다고 가정 해 보겠습니다. , 그러나 가운데에있는 1 포인트 너비의 밴드 만 늘립니다. 그런 다음 UIEdgeInsetsMake(0,10,0,10).
예를 들어 하위 픽셀 링 크기 조정에 유용하지만 실제로는 정수 (또는 소수 부분이없는 부동 소수점) 만 사용합니다.
주의하세요. 이것은 iOS5 + 전용 방법이며 이전 iOS5에서는 사용할 수 없습니다. iOS5 이전 SDK를 사용 stretchableImageWithLeftCapWidth:topCapHeight:하는 경우 대신 사용하십시오.
[편집]UIEdgeInsets 구조 의 필드가 어떤 순서인지 기억하지 못하기 때문에 몇 가지 팁 을 사용 합니다. 인수를 UIEdgeInsetsMake함수 에 전달해야하는 순서는 다음 과 같습니다. "지정된 초기화"구문을 사용 하는 것이 좋습니다. :
UIEdgeInsets insets = { .left = 50, .right = 50, .top = 10, .bottom = 10 };
또는 명시 적 캐스트가 필요한 경우 :
UIImage* rzImg = [image resizableImageWithCapInsets:(UIEdgeInsets){
.left = 50, .right = 50,
.top = 10, .bottom = 10
}];
특히 다른 테두리 / 방향을 혼합하지 않도록하기 위해 더 읽기 쉽습니다!
근데 수레라서 이미지로 설정하는 방법을 모르겠어요
이것은 UIImage 인스턴스 메소드입니다. 따라서 resizableImageWithCapInsets이미지를 만드는 데 사용하는 방법 은 해당 메시지 를 이미지 (UIImage) 로 보내는 것부터 시작하는 것입니다 .
멋진 새 기능 : 가장자리 삽입이 모두 0이면 이미지가 바둑판 식으로 배열됩니다. 이것은 배경 이미지를 받아들이는 모든 것에 대한 배경으로 작동합니다. UIImageView에서도 작동합니다.
이 기사를 통해 모든 개념을 정리했습니다. UIEdgeInsetsMake
iOS : UIEdgeInsetsMake로 확장 가능한 버튼을 만드는 방법
참고 URL : https://stackoverflow.com/questions/7628004/how-does-uiedgeinsetsmake-work
'IT TIP' 카테고리의 다른 글
| NoRouteToHostException을 피하는 방법? (0) | 2020.12.08 |
|---|---|
| Javascript / jQuery를 사용하여 외부 스타일 시트에서 CSS 값 가져 오기 (0) | 2020.12.08 |
| Laravel : Difference App :: bind 및 App :: singleton (0) | 2020.12.08 |
| React Native 및 API 백엔드를 사용한 인증 (0) | 2020.12.08 |
| 이 iPhone 6은 iOS 10.1 (14B55c)을 실행 중이며이 버전의 Xcode에서 지원하지 않을 수 있습니다. (0) | 2020.12.08 |