2015-10-01 34 views
0

我發現並配置了一個UIView,它完全適用於我正在嘗試執行的操作,但是我很難爲其配置CGRect如何判斷一個UIView在一個UIViewController中執行了哪些CGRect

我有什麼:

1)MyViewController.h/m

2)CustomUIView.h/m

在界面生成器,我添加了一個UIView對象和配置的自動版式約束。在身份檢查員中,我將「自定義類」設置爲CustomUIView。我添加了一個IBOutletMyViewController.m

@property (strong, nonatomic) IBOutlet CustomUIView *customUIView; 

MyViewControllerviewDidLoad,我使用這些命令來添加customUIView

[self.customView drawCustomViewInView:self.customUIView]; 

CustomUIView.mdrawCustomViewInView具有下面的行,其中我有AB ***的時間h搭配:

customViewWidth = [UIScreen mainScreen].bounds.size.width - (2 * STEPPER_MARK_HEIGHT_WIDTH); 

本來,繪製CustomUIView值進行硬編碼,所以我剛纔提出的UIView對象屏幕的寬度並稱它爲一天。當我開始測試不同的屏幕尺寸時,這又回來咬我@ @ $$。

我怎樣才能得到CustomUIView瞭解我希望它在MyViewController上畫的矩形?我知道這並不難,但我不能弄明白。我發現[UIScreen mainScreen]將無法​​完成每個屏幕尺寸的工作......我需要告訴它的矩形。

+2

您是否爲'customUIView'設置了自動佈局?如果是的話,你需要設置'translatesAutoresizingMaskIntoConstraints = YES',然後'setFrame:'。但是,當你這樣做時,你仍然需要確保這些自動約束可以滿足其餘約束條件。 –

+1

更多信息:http://stackoverflow.com/questions/13186908/can-i-use-setframe-and-autolayout-on-the-same-view –

+0

謝謝!這看起來非常有前途!我會在早上修補它,讓你知道它是怎麼回事。 – Adrian

回答

0

添加兩行MyViewControllerviewDidLoad讓我走平方:

self.customUIView.translatesAutoResizingMaskIntoConstraints = YES; 
[self.customUIView setFrame:self.customUIView.frame]; 

這兩行,使我納入定製UIView有自己的繪畫方法爲通過自動版式一UIViewController。特別感謝Luan Nguyen指出我正確的方向。

有關此主題的更深入討論可以在"How I Learned to Stop Worrying and Love AutoLayout"中找到。

相關問題