2014-04-07 2 views
0

나는 모든 TableView 셀의 이미지 크기를 조정하고 싶습니다. 이 방법을 시도했지만 작동하지만 이미지의 품질이 떨어졌습니다. TableViewController 셀의 크기 조정

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
//... 
     CGSize size = {35,35}; 
     cell.imageView.image = [self imageWithImage:[UIImage imageNamed:@"image.png"] scaledToSize:size]; 
//... 

} 

//Given a UIImage and a CGSize, this method will return a resized UIImage. 
    - (UIImage*)imageWithImage:(UIImage*)image 
      scaledToSize:(CGSize)newSize; 
    { 
     UIGraphicsBeginImageContext(newSize); 
     [image drawInRect:CGRectMake(0,0,35,35)]; 
     UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); 
     UIGraphicsEndImageContext(); 

     return newImage; 
    } 

그래서 내가 검색 계속 나는이 방법을

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

을 추가하지만, 엑스 코드는, 나에게 오류를 제공이 방법은 더 이상 사용할 수 없습니다하는 말하는 사람을 발견?

품질을 떨어 뜨리지 않고 이미지의 크기를 조정할 수 있습니까?

+0

과 겹칠 것입니다. Xcode에서 제공하는 오류는 무엇입니까? – Larme

+0

품질이 저하되면 이미지가 흐릿 해지는 것을 의미합니까? – CocoaDog

+0

@Larme 오류 "보이는 인터페이스가 없습니다 ... 선택기 레이아웃을 선언합니다 .Subviews" – r4id4

답변

0

나는 해결책을 찾을 수 있었다. 여기서 누군가가 필요로 할 경우를 대비해 설명 할 것이다.

첫째, 당신은 이미지가있다 셀을 말해야 이유 흰색 이미지 같은 또는

cell.imageView.image = [UIImage imageNamed:@"clear.png"]; 

명확를 가짜 이미지를 만들 수 있습니다. 이제

UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(20, 5, 35, 35)]; 
       imgView.backgroundColor=[UIColor clearColor]; 
       [imgView.layer setCornerRadius:8.0f]; 
       [imgView.layer setMasksToBounds:YES]; 
       [imgView setImage:[UIImage imageNamed:account.icon]]; 
       [cell.contentView addSubview:imgView]; 

가 지금은 좋은 년대 TableView 셀의 하위 뷰 같은 ImageView를 추가합니다. 가짜 이미지를 만들지 않으면 새로 만든 imgViewcell.textLabel.text

+0

셀이 표시 될 때마다 새 이미지보기를 만들고 절대 이미지를 제거/해제하지 않습니다. 그게 심각한 문제를 일으킬거야. –

관련 문제