2014-01-10 77 views
0

我有一個小問題,一個UIImageView的高度和寬度,我嘗試動態放置的圖像,所以我開始喜歡這個粉碎initWithFrame圖像尺寸

self.picture_view = UIImageView.alloc.initWithFrame (CGRectMake (0, 16,45, 46)) 

,但我想利用我的幀大小每張照片都是我通過他的。

所以我喜歡這樣。

picture_frame = picture_view.frame; 
picture_frame.size = picture_view.size; 
picture_view.frame = picture_frame; 

但是當我做這個

NSLog (picture_frame.size.inspect) 

它給了我45,46爲每個圖像, 因此,如何恢復圖像尺寸和幀超控器對我來說,顯示了正確的尺寸

先謝謝你。

PS:我做得很好picture_view.image = UIImage.imageNamed(my_picture)

回答

1

你實際上是設置ImageViews幀自身所具有的框架。你需要基於實際的UIImage來做到這一點。您可以通過使用圖像啓動視圖來自動執行此操作。

Ex。

UIImageView *pictureView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"whatever.png"]]; 
//The size is already set correctly, but if you want to change the x or y origin do like so 

pictureView.frame = CGRectMake(0, 16, pictureView.frame.size.width, pictureView.frame.size.height); 
0

編輯:這個答案是用Objective-C編寫的,但是核心思想應該很容易轉化爲rubymotion。


如果你想創造一個UIImageView,然後調整其大小以適合UIImage分配給它,你應該嘗試這樣的事:

UIImage *image = [UIImage imageNamed:@"myPicture.png"]; 
UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; 

與圖像創建的ImageView

更改圖片,並調整imageView的大小以適合:

UIImage *anotherImage = [UIImage imageNamed:@"anotherPicture.png"]; 
imageView.image = anotherImage; 

CGRect imageViewFrame = imageView.frame; 
imageViewFrame.size = anotherImage.size; 
imageView.frame = imageViewFrame;