2009-09-02 2 views
0

У меня следующий код в моем приложении:изображение проблема выравнивания в ImageView - iPhone

// to set tip - photo in photo frame  
NSData *data = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:pathOfThumbNail]]; 
UIImage *cellThumbImg; 

if([data length]>0){ 
    cellThumbImg = [UIImage imageWithData:data]; 
} else { 
    cellThumbImg = [UIImage imageNamed:@"130X90.gif"]; 
} 

UIImageView *imgView = [[UIImageView alloc]initWithImage:cellThumbImg]; 

imgView.frame = photoFrame; 

[imgBg setContentMode:UIViewContentModeScaleToFill]; 
[cell.contentView addSubview:imgView]; 
//[cell.contentView sendSubviewToBack:imgView]; 

[imgView release]; 
[data release]; 

Я хочу следующее:

  • Пусть образ (который загружается через NSData) оказывает размер 60 x 60, тогда режим содержимого должен быть UIVIewContentModeCenter
  • Предположим, что изображение (которое загружается через nsdata) имеет больший размер, чем 60 x 60, тогда режим содержимого должен быть UIViewContentModeScaleToFill.

Но мой вопрос в том, как определить размер изображения, загруженного через NSData?

ответ

1

Вы можете удалить следующую строку, так как UIImageView самих размера в зависимости от изображения, используемого для его инициализации:

imgView.frame=photoFrame; 

Оттуда вы можете получить размер изображения, принимая размер UIImageView:

CGRect image_bounds = imgView.frame; 
+0

@fbrereton - Сэр, вы правы. Однако я попробовал что-то другое, которое добавляется в следующем ответе. –

0

Я пробовал следующий код & Он работал.

// to set tip - photo in photo frame  
NSData *data=[[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:pathOfThumbNail]]; 
UIImage *cellThumbImg; 
if([data length]>0) 
{ 
    cellThumbImg=[UIImage imageWithData:data]; 
} 
else 
{ 
    cellThumbImg=[UIImage imageNamed:@"130X90.gif"]; 
} 
UIImageView *imgView=[[UIImageView alloc]initWithImage:cellThumbImg]; 
imgView.frame=photoFrame; 

(cellThumbImg.size.height>60 || cellThumbImg.size.width>60) ? 
     [imgView setContentMode:UIViewContentModeScaleToFill] : 
     [imgView setContentMode:UIViewContentModeCenter] ; 

[cell.contentView addSubview:imgView]; 
[imgView release]; [data release]; 

 Смежные вопросы

  • Нет связанных вопросов^_^