iOS 는 UITableView 에서 cell.imageView.image 의 그림 크기 를 어떻게 고정 합 니까?
iOS 개발 을 하 는 경우 에는 기본적으로 목록 을 보 여 주 려 거나 표준 목록 이 아니 더 라 도 수량 이 일정 하지 않 기 때문에 목록 처럼 위 에서 아래로 표시 하고 불 러 와 야 하 는 경우 가 많다.이것들 은 모두 UITableView 에 대한 사용 을 돌 릴 수 없다.
iOS 개발 에서 UITableView 는 가장 광범 위 하 게 사용 되 는 컨트롤 이 라 고 할 수 있 습 니 다.우리 가 평소에 사용 하 는 소프트웨어 는 곳곳에서 그 그림 자 를 볼 수 있 습 니 다.위 챗,QQ,시 나 웨 이 보 등 소프트웨어 는 기본적으로 어디서나 UITableView 와 같 습 니 다.물론 그것 의 광범 위 한 사용 은 자연히 그것 의 강력 한 기능 과 떨 어 질 수 없다.
우 리 는 개발 과정 에서 기본 UITableView
cell.imageView.image
를 자주 사용 합 니 다.만약 에 그림 의 크기 가 우리 가 원 하 는 사이즈 와 똑 같 으 면 무사 하지만 항상 의외 의 일이 있 습 니 다.인터페이스 에서 자주 얻 는 그림 의 크기 는 고정 되 지 않 습 니 다.예 를 들 어 다음 그림 1-1:
그림 1-1
그림 의 사 이 즈 는 cell 의 높이 보다 크 기 때문에'폭발'되 어 매우 아름 답지 않 고 조 화 롭 게 보인다.만약 에 cell 의 높이 가 고정 되 지 않 고 그림 의 사이즈 가 다 르 면 효과 가 더욱 보기 싫 을 것 이다.그러면 우 리 는 어떻게 할 까?
너 희 는 틀림없이 여러 가지 해결 방법 이 있 을 것 이다.
1.사용자 정의 cell(간단 한 cell 이 라면 이 건 좀 번 거 롭 고 cell 파일 도 새로 만 들 고...)
2.UIGraphics BeginImageContextWith Options 함 수 를 이용 하여 처리 합 니 다(지금까지 가장 쉬 운 방법 이 라 고 생각 합 니 다)
UIImage * icon = [UIImage imageNamed:@"goods_1"];
CGSize itemSize = CGSizeMake(36, 36);// 36*36
UIGraphicsBeginImageContextWithOptions(itemSize, NO, 0.0);//*1
CGRect imageRect = CGRectMake(0, 0, itemSize.width, itemSize.height);
[icon drawInRect:imageRect];
cell.imageView.image = UIGraphicsGetImageFromCurrentImageContext();//*2
UIGraphicsEndImageContext();//*3
완성 후 그림 은 다음 그림 과 같 습 니 다.1-2(순간 예 쁘 지 않 나 요?그리고 심하게 변형 되 지 않 습 니 다.O(∩∩)O 하하~):그림 1-2
여기 설명 좀 해 주세요.
*1
UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale)
이 함 수 는 그림 을 처리 하 는 그래 픽 컨 텍스트(context)를 가 져 오 는 데 사 용 됩 니 다.이 컨 텍스트 를 이용 하여 그림 을 그리고 그림 을 만 들 수 있 습 니 다.호출
UIGraphicsGetImageFromCurrentImageContext()
함 수 는 현재 컨 텍스트 에서 UIImage 대상 을 가 져 올 수 있 습 니 다.그러면 그림 이 바 뀌 었 습 니 다.*3
그림 에 대한 작업 이 끝 난 후에 이 컨 텍스트 를 닫 아야 하기 때문에 호출
UIGraphicsEndImageContext()
함수 가 필요 합 니 다.총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swift의 패스트 패스Objective-C를 대체하기 위해 만들어졌지만 Xcode는 Objective-C 런타임 라이브러리를 사용하기 때문에 Swift와 함께 C, C++ 및 Objective-C를 컴파일할 수 있습니다. Xcode는 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.