2014-05-14 82 views
0

我有一個純色(綠色和橙色)的2個圖像(280x20像素),我將橙色放在綠色的背後。我想要的是在綠色的寬度上調整或拉伸(向下)。我不在乎失去質量,圖像是由純色組成的。更改UIImageView或UIImage寬度

爲什麼?他們將代表數據,如果我有50%-50%的分佈,我希望綠色的是140x20。這樣,我們可以通過圖像的視覺幫助(類似條形圖)理解兩幅圖像具有相同的大小。如果數據是75%-25%,我希望綠色的寬度爲(280 * 0.75),這個比例爲3:1。請注意,我不會調整橙色圖像的大小,她會將它放在綠色的圖像後面,用戶會看到綠色的圖像沒有覆蓋。

我沒有任何關於數據比例的計算問題。 我的問題是處理圖像縮放/拉伸/等。我已經試過如下:

//imageView is the imageView representing the "green image bar" 
UIImageView* imageView = (UIImageView*) [cell viewWithTag:202]; 
double scale = 0.75; 
CGRect frame = imageView.frame; 
imageView.frame = CGRectMake(frame.origin.x, frame.origin.y, 280*scale, frame.size.height); 

我曾經有過通過實際調整的UIImageView的一些進展,但位置是一樣的。導致圖像(現在寬度較小)顯示爲「向右移動」,我希望該圖像保持原來的左對齊方式,因爲它最初有,但寬度較小。

在故事板中,它位於原型單元格內,這就是爲什麼我通過標記獲得了UIImageView。還嘗試了幾乎所有的模式(故事板屬性選項卡中的視圖 - >模式),目前有「Scale to Fill」,此時不起作用。

我應該調整UIImageView中的UIImage的大小嗎?我應該調整整個UIImageView嗎?希望有人可以幫助我在這方面的良好做法,謝謝! :d

PS:請問已經發布了一些截圖,沒有足夠的聲譽,雖然:(

回答

0

如果你僅僅使用純色,然後只需使用一個UIView並設置backgroundColor屬性使用圖像這一點。目的所以,現在我們已經談妥了不必要地複雜的事情,再說,一個UIImageViewUIView的子類,因此唯一的附加功能是要涉及到的東西你不需要。

使用UIViews代替圖像,你不必擔心UIViewContentMode了(或者填充無用的比例)。只需相應地更改您的視圖的sizeorigin屬性即可。

使用次數而不是圖像用於此目的的例子:(我不能保證語法,因爲我不是從我的Mac編寫本)

UIView *greenView = [[UIView alloc] initWithFrame:CGRectMake(0,0,280,20)]; 
UIView *orangeView = [[UIView alloc] initWithFrame:CGRectMake(0,0,280,20)]; 

greenView.backgroundColor = [UIColor greenColor]; 
orangeView.backgroundColor = [UIColor orangeColor]; 

CGRect newGreenFrame = greenView.frame; 
newGreenFrame.size.width = newGreenFrame.size.width * 0.75; 

greenView.frame = newGreenFrame; 

這是初始化和改變的好方法UIViews的幀。還有其他更簡單的方法,但這樣可以使代碼更容易閱讀。

+0

正是我需要的,謝謝! – Fdo