2013-10-31 3 views
-1

API에서 돌아 오는 이미지 너비가 인 경우 cell.image.frameCGRectMake(105, 110, 10, 180)으로 변경해야합니다.이미지 프레임 너비 변경 IF 이미지 너비 = 200

현재 모든 크기 이미지는 CGRectMake(0, 140, 320, 180)에 있습니다. 내가 돌아올 이미지의 폭이 정확히 정확히 200

나는 if 문을 넣을 위치를 을 파악하는 데 도움이 필요

입니다

그래서 난 그냥 단지 경우에 cell.image.frame을 변경해야 if 명세서을 입력하십시오.

나는 어떤 도움을 주시면 고맙겠습니다. 다음은

코드입니다 :

WebListCell.m

- (void)layoutSubviews { 
    [super layoutSubviews]; 
    self.imageView.frame = CGRectMake(0, 140, 320, 180); 
} 

WebListViewController.m

Images *imageLocal = [feedLocal.images objectAtIndex:0]; 
NSString *imageURL = [NSString stringWithFormat:@"%@", imageLocal.url]; 
[cell.imageView setImageWithURL:[NSURL URLWithString:imageURL] 
        placeholderImage:[UIImage imageNamed:@"img.gif"] 
          completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) 
     { 
     // Code 
     }]; 

편집 :

: 나는 //Code 부분의 내부를 넣어 시도했습니다
if(imageWith == [NSString stringWithFormat:@"200"]) 
     { 
      cell.imageView.frame = CGRectMake(105, 110, 10, 180); 
     } 

하지만 작동하지 않았고 세포를 강하게 잡아서 사이클을 유지할 수 있다고 경고했습니다.

답변

1

이미지 너비를 확인하는 코드는 의미가 없습니다. 당신이 원하는 :

if(image.size.width == 200) { 
    cell.imageView.frame = CGRectMake(105, 110, 10, 180); 
} 

업데이트 : 테인주기 문제를 처리하기 위해이 같은 원하는 : 주석에 대한

__weak UITableViewCell *weakcell = cell; 
[cell.imageView setImageWithURL:[NSURL URLWithString:imageURL] 
         placeholderImage:[UIImage imageNamed:@"img.gif"] 
         completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) { 
    if(image.size.width == 200) { 
     weakcell.imageView.frame = CGRectMake(105, 110, 10, 180); 
    } 
}]; 
+0

응답 해 주셔서 감사합니다! 그 말이 훨씬 더 의미가 있습니다. 나는 여전히 "블록을 강하게 잡아 당겨 사이클을 유지할 수있다"는 경고를 받고있다. 사진 너비의 프레임이 처음에는 괜찮 았기 때문에 무언가를 엉망으로 만들었습니다. 그런 다음 셀을지나 스크롤을 시작하면 원치 않는 사진 너비로 되돌아가 그 상태를 유지합니다. 감사! – Realinstomp

+0

갱신주기를 다루는 업데이트 된 답변을 확인하십시오. – rmaddy

+0

이것은 분명히 경고를 제거하는 데 도움이되었지만 여전히 셀을 클릭하고 누른 상태에서 놓으면 그림이 크기가 변하는 것과 동일한 작업을 수행합니다. 그게 전부 이해가 되니? – Realinstomp

1

완료 블록 내에 if 문을 넣어야합니다. 거기에는 이미지 해상도 만 있기 때문입니다.

+0

감사합니다. 이전에 완료 블록에서 시도한 작업이 작동하지 않는다는 것을 보여주기 위해 질문을 업데이트했습니다. 내가 한 일이 왜 효과가 없었는지에 대한 제안은 없습니까? 도와 주셔서 감사합니다! – Realinstomp