2015-07-12 82 views
3

我使用PaintCode爲我的xamarin.ios應用程序生成一個stylekit。我有一個簡單的徽標,我從Illustrator中粘貼到PaintCode中。一切看起來都很好,我有一個框架,生成的繪製方法需要一個矩形。如何在調整PaintCode生成視圖的大小時保持縱橫比?

在某一點上,我調整了它在我的故事板中的大小,但它不能保持高寬比,所以顯然這個標誌看起來是錯誤的,這取決於UIView的大小。

如何添加變量/表達式到paintcode,以便生成的代碼在調整UIView大小時自動保持縱橫比?

謝謝。

+0

自動寬高比約束? – Aladin

+0

不,這是特定於Paintcode(paintcodeapp.com)。 Paintcode爲vector資源生成一個繪圖方法,但默認情況下它不能保持縱橫比,我假定這需要手動實現,但我不知道如何。 – jmichas

+0

這是一個UIView,所以你可以設置約束我猜 – Aladin

回答

5

這可能與變量。嘗試創建兩個變量是這樣的:

  1. 數字「寬度」與例如100的值。
  2. 表達式「高度」,值爲width/2。這將保持2:1的比例,根據需要進行更改。

然後將這兩個附加到您的框架對象的寬度和高度屬性。在此之後,產生的方法只需要一個數字參數 - 在Width

- (void)drawMyCanvasWithWidth: (CGFloat)width; 

應該是這樣的形象:

Preview

然後,只需將您的所需的寬度和高度將是自動計算。


這也將有可能維持該方法的CGRect參數,並找到恰當使用矩形變量。如果你問,我會補充一點。

+0

是的,這就是我想出來的。我爲高寬比表達式設置變量,然後使用這些變量生成調整後的高度,並將其設置爲我的幀的高度。但是,我需要對其進行優化,使其無論是高度還是寬度都是固定值。你的代碼固定寬度,但如果你製作UIView並改變高度,你可以剪切圖像。我想要它,所以如果高度會剪切圖像,那麼高度將用作固定值,然後生成一個寬度。我認爲這可以用在paintcode中使用makeRect()的表達式。 – jmichas

+1

好,所以這工作,我有一個Rect變量設置爲畫布的大小。然後我有一個使用常量的寬高比變量。然後我創建了一個表達式:'logoMarkFrame.height <(logoMarkFrame.width/logoMarkAspectRatio) ? (0,0,logoMarkFrame.width,logoMarkFrame.width/logoMarkAspectRatio)'然後將其連接到我的畫布中的框架,它工作正常。下一步,我認爲當高度小於寬度/ ar時,它會保持居中。 – jmichas

相關問題