调整嵌入在 UIView 中的 UIView 的大小

sizing a UIView embeded in a UIView

我正在尝试创建一个 UIView,该 UIView 被限制在容器视图的底部,但实际上并未执行自动布局限制。这是我的代码:

-(void)viewDidLoad
{
[super viewDidLoad];
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGFloat screenHeight = screenRect.size.height;
self.graphView.frame = CGRectMake(0,screenHeight - (screenWidth / 2), screenWidth, screenWidth / 2);
}

我希望这会创建一个子视图,该子视图将固定在屏幕底部,并且是屏幕的宽度和高度的一半。但是,当加载视图时,我的 graphView 和屏幕底部之间有一些 space。知道这是为什么吗?

我认为你在需要使用 screenHeight 时使用了 screenWidth 正确代码:

-(void)viewDidLoad  
{
[super viewDidLoad];
    CGRect screenRect = [[UIScreen mainScreen] bounds];
    CGFloat screenWidth = screenRect.size.width;
    CGFloat screenHeight = screenRect.size.height;
    self.graphView.frame = CGRectMake(0,screenHeight - (screenHeight / 2),     screenWidth, screenHeight / 2);
}

解决方案:关闭自动布局和任何其他影响视图放置位置的 IB 切换。原始代码对于我想要的矩形是正确的,它只是被自动布局移动了。另外最好像这样设置图形容器:

self.graphContainer = [[UIView alloc] initWithFrame:CGRectMake(0,screenHeight - (screenHeight / 2),     screenWidth, screenHeight / 2)];