2009-09-02 109 views
0

我已經在我的應用程序下面的代碼:圖像對齊問題 - 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加載的圖像的大小?

imgView.frame=photoFrame; 

從那裏,你可以通過採取UIImageView的尺寸得到了圖像的大小:

回答

1

你可以因爲根據用於初始化它的圖像UIImageView意志大小本身刪除以下行:

CGRect image_bounds = imgView.frame; 
+0

@fbrereton - 先生,您說得對。然而,我嘗試了一些不同的東西,並在下面的答案中加入。 – 2009-09-02 17:17:30

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];