我正在尝试扩展视图以适应屏幕的剩余高度。问题是我试图在iPhone 4和iPhone 5布局上都这样做。
我想要做的是拥有我的CGRectMake代码,以便框架只是固定在主视图的底部。有没有办法做这样的事情?谢谢!
继承我的webView CGRectMake代码:
webView.frame = CGRectMake(0, 167, 320, 313);
答案 0 :(得分:2)
尝试在此处使用自动布局以避免硬编码。
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]];
执行自动旋转
时,您还可以避免布局问题答案 1 :(得分:0)
您可以对视图框进行引用以实现此目的。
webView.frame = CGRectMake(0, 167, 320, self.view.frame.size.height - 167);
答案 2 :(得分:0)
如果你有一个固定的起始高度,那就太容易了:
int startHeight = 167;
int frameHeight = self.view.frame.size.height - startHeight;
webView.frame = CGRectMake(0, startHeight, 320, frameHeight);
这样做是为了获得视图的高度,然后它减去窗口的起始偏移量。
为了实现这一点,代码需要在UIWindow
上显示视图后执行,这意味着您需要在viewDidAppear
而不是viewDidLoad
中执行它。
答案 3 :(得分:0)
如果您放弃直接设置框架rects并拥抱自动布局,这将很容易。