2017-08-09 78 views
0

我想在故事板中做到這一點,但似乎無法弄清楚。我有一個QR碼(方形UIImageView)居中(垂直和水平)在另一個UIView,我想擴大一點取決於手機的大小,但我不想它超過150x150,否則它看起來很奇怪。這是我試過的。任何幫助不勝感激。如何在保持1:1比率的同時在UIImageView上設置最大寬度和高度?

Attempt

+0

您目前面臨的問題是什麼? –

+0

@AravindAR它看起來是無效的約束組合(它在故事板中變成紅色表示有錯誤)。 –

+1

然後嘗試刪除高度<= 150或寬度<= 150約束,看看它是否有效 –

回答

1

您希望:

  • 中心在其上海華
  • 保持1:1寬高比
  • 保持它低於或相等到150×150

所以,居中顯而易見(耶,自動佈局)。 1:1的比例也很容易。訣竅是:

將所有4個側面都夾在>= 0的超視圖邊上。

設置Width <= 150

然後---

設置另一Width約束,這一次Width Equals: 150但隨着Priority低於1000。我使用了999,它完成了這項工作。

enter image description here

鋼釘側面和頂部/與>= 0底部得到當上海華小於150(在任一方向)它收縮。

0

我一直在用這個很長一段時間。

(UIImage*) scaleImage:(UIImage*)image toSize:(CGSize)newSize { 
CGSize scaledSize = newSize; 
float scaleFactor = 1.0; 
if(image.size.width > image.size.height) { 
    scaleFactor = image.size.width/image.size.height; 
    scaledSize.width = newSize.width; 
    scaledSize.height = newSize.height/scaleFactor; 
} 
else { 
    scaleFactor = image.size.height/image.size.width; 
    scaledSize.height = newSize.height; 
    scaledSize.width = newSize.width/scaleFactor; 
} 

UIGraphicsBeginImageContextWithOptions(scaledSize, NO, 0.0); 
CGRect scaledImageRect = CGRectMake(0.0, 0.0, scaledSize.width, 
scaledSize.height); 
[image drawInRect:scaledImageRect]; 
UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext();  

return scaledImage; 
} 
相關問題