我想有一個視圖,擴大到適合屏幕的其餘高度。問題是,我試圖在iPhone 4和iPhone 5的佈局上做到這一點。使CGRectMake框架堅持底部
我想要做的是讓我的CGRectMake代碼,以便框架錨定到主視圖的底部。有沒有辦法做這樣的事情?謝謝!
我的繼承人webView的CGRectMake代碼:
webView.frame = CGRectMake(0, 167, 320, 313);
我想有一個視圖,擴大到適合屏幕的其餘高度。問題是,我試圖在iPhone 4和iPhone 5的佈局上做到這一點。使CGRectMake框架堅持底部
我想要做的是讓我的CGRectMake代碼,以便框架錨定到主視圖的底部。有沒有辦法做這樣的事情?謝謝!
我的繼承人webView的CGRectMake代碼:
webView.frame = CGRectMake(0, 167, 320, 313);
嘗試在此處使用自動佈局以避免硬編碼。
webView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
webView.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:webView];
NSDictionary *viewsDict = @{@"webView" : webView};
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-167-[webView]-0-|"
options:0 metrics:nil views:viewsDict]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[webView]-0-|"
options:0 metrics:nil views:viewsDict]];
您也將避免佈局問題進行自轉
可以使各方面的意見框架的引用來做到這一點。
webView.frame = CGRectMake(0, 167, 320, self.view.frame.size.height - 167);
那麼如果你有一個固定的起始高度是太容易了:
int startHeight = 167;
int frameHeight = self.view.frame.size.height - startHeight;
webView.frame = CGRectMake(0, startHeight, 320, frameHeight);
這樣做是獲得視圖的高度,然後將其扣除啓動窗口的偏移量。 爲了達到此目的,代碼需要在UIWindow
上顯示視圖後執行,這意味着您需要在viewDidAppear
而不是viewDidLoad
中執行它。
如果您放棄直接設置框架矩形並擁抱自動佈局,這將很容易。
使用自動佈局時。或者,如果你真的想堅持手動框架計算,看看CGRectDivide()並使用視圖控制器視圖的邊界。 – jrturton