iOS 는 UITableView 에서 cell.imageView.image 의 그림 크기 를 어떻게 고정 합 니까?

머리말
iOS 개발 을 하 는 경우 에는 기본적으로 목록 을 보 여 주 려 거나 표준 목록 이 아니 더 라 도 수량 이 일정 하지 않 기 때문에 목록 처럼 위 에서 아래로 표시 하고 불 러 와 야 하 는 경우 가 많다.이것들 은 모두 UITableView 에 대한 사용 을 돌 릴 수 없다.
iOS 개발 에서 UITableView 는 가장 광범 위 하 게 사용 되 는 컨트롤 이 라 고 할 수 있 습 니 다.우리 가 평소에 사용 하 는 소프트웨어 는 곳곳에서 그 그림 자 를 볼 수 있 습 니 다.위 챗,QQ,시 나 웨 이 보 등 소프트웨어 는 기본적으로 어디서나 UITableView 와 같 습 니 다.물론 그것 의 광범 위 한 사용 은 자연히 그것 의 강력 한 기능 과 떨 어 질 수 없다.
우 리 는 개발 과정 에서 기본 UITableViewcell.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
여기 설명 좀 해 주세요.
*1UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale)이 함 수 는 그림 을 처리 하 는 그래 픽 컨 텍스트(context)를 가 져 오 는 데 사 용 됩 니 다.이 컨 텍스트 를 이용 하여 그림 을 그리고 그림 을 만 들 수 있 습 니 다.
  • size 는 상하 문 을 만 드 는 크기 이자 상하 문 처리 도형 을 만 든 후 되 돌아 오 는 크기
  • opaque 투명 스위치 는 도형 이 투명 하지 않 으 면 YES 로 설정 하여 비트 맵 의 저장 을 최적화 합 니 다.
  • scale 확대 인자
  • *2
    호출UIGraphicsGetImageFromCurrentImageContext()함 수 는 현재 컨 텍스트 에서 UIImage 대상 을 가 져 올 수 있 습 니 다.그러면 그림 이 바 뀌 었 습 니 다.
    *3
    그림 에 대한 작업 이 끝 난 후에 이 컨 텍스트 를 닫 아야 하기 때문에 호출UIGraphicsEndImageContext()함수 가 필요 합 니 다.
    총결산
    이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

    좋은 웹페이지 즐겨찾기