2017-09-18 2 views
0

내 응용 프로그램에서 서버에서 이미지를 다운로드하고 tableView에 표시해야합니다. 그러나 앱은 모든 기기와 두 방향 (가로 및 세로)으로 만들어집니다.iOS 다운로드를위한 이미지 크기

저는 현재 2 가지 문제가 있습니다. 첫째, 이미지를 다운로드해야하는 크기를 모르거나 크기 색인을 만들고 사용해야하는 장치에 따라 해당 이미지를 다운로드해야합니다. 하지만 문제는 두 방향에서 이미지의 크기가 다르기 때문에 방향이 바뀌면 이미지를 다시 다운로드해야합니까?

두 번째로 이미지와 크기를 URL의 매개 변수로 전달할 수있는 서버에 스크립트가 있고 서버를 다운로드하기 전에 크기를 조정합니다. 많은 사람들이 동시에 앱을 사용한다면 많은 처리 시간이 필요할 수 있기 때문에 이것이 좋은 아이디어인지 잘 모르겠습니다.

나는 많은 기사와 다른 질문을 읽은 후에 내가 가지고있는 질문이다. 나는 아직도 이해하지 못한다. 명확히하기 위해 @ 1x, @ 2x 및 @ 3x 형식의 차이점을 이해하고 이에 대해 묻지는 않습니다.

불명확 한 점이 있으면 언제든지 물어보십시오. 해당 정보를 추가하겠습니다.

답변

1

나는 당신을 위해 모든 이미지 처리를 설명 할 것입니다.

먼저 x1 x2 x3은 앱 자체의 이미지입니다. 아이콘, 배경 등과 같이 앱 내에있는 이미지의 에셋에 추가됩니다. 이미지를 다운로드하거나 서버에서 이미지를 가져올 때 x1 x2 및 x3은 데이터가 아니고 애셋이 아니기 때문에 걱정할 필요가 없습니다. 그래서 지금은 제쳐두고 있습니다.

두 번째로, 원래 질문에 대답하면 필요한 것을 구현하는 3 가지 방법이 있습니다. 백엔드에서 각 이미지 및 URL의 크기를 알려주도록하십시오. 따라서 각 프레임을 사전 설정 한 다음 이미지를 다운로드합니다. 또 다른 방법은 이미지를 다운로드 할 때 테이블 뷰를 동적으로 만들어서 자동으로 셀의 크기를 조정하는 것입니다. this이 귀하의 질문에 답변해야합니다. 마지막 해결책은 UIImage에서 content mode라는 속성을 사용하는 것입니다. 그것에 대한 자세한 내용은 here

해피 코딩!

+0

답변 해 주셔서 감사합니다. 우선, 1x 등의 개념을 이해하지 못한 것 같습니다.이 문제를 해결해 주셔서 감사합니다. 둘째로 나는 콘텐츠 모드의 사용을 알고 테이블 뷰의 크기를 조정하려고하지 않고 무엇을 이해해야 하는가는 이미지를 다운로드해야하는 크기이며, 특히 방향이 바뀌면 다른 이미지를 다운로드해야합니까? –

+0

전체를 표시하려면 원본 크기로 이미지를 다운로드하십시오.나를 위해 그것은 당신의 편에서 이미지를 다루는 것이 백업 된 사람들이 느리게 처리하는 것보다 낫습니다. 그리고 장치를 회전 할 때 응용 프로그램은 이미지와 함께 방향이 지정되므로 자동 레이아웃 –

+0

을 사용하면 방향에 대해 걱정할 필요가 없습니다. 아주 좋은 아이디어입니다. 이것을 사용합니다. 그러나 이미지의 크기에 대한 엄지 손가락 규칙이 있습니까? 원본 이미지는 상당히 크고 다양한 MB까지 가능합니다. 너무 길다는 것을 알고 있습니다. 크기를 줄일 수있는 좋은 크기를 알고 있습니까? –

0

나는 동일한 이미지 파일의 2 가지 다른 크기의 이미지를 유지하고 방향에 따라로드하는 것이 좋습니다.

예를 들어 인물 모드로 앱을 사용하는 경우 이미지 "image_portrait.jpg"가로드되고 그렇지 않으면 "image_landscape.jpg"가로드됩니다.

1x가 거의 사용되지 않으므로 2x 및 3x 장치를 기반으로 다른 크기의 이미지를 유지할 수도 있습니다.

누군가 아이폰 5 또는 6에 이미지를로드하는 경우 6 plus 또는 7 plus "image_portrait_3x.jpg"에 대해 "image_portrait_2x.jpg"를로드 할 수 있습니다.

또한 오리엔테이션이 변경되거나 테이블 뷰가 스크롤 될 때마다 이미지가 다운로드되지 않도록 NSCache를 사용하는 것이 좋습니다.

관련 문제