如何将一个UIView相对于父视图底部定位?

15

如何将一个UIView对齐到父容器的底部,使得它的frame的Y坐标相对于屏幕底部而不是顶部?

这相当于在HTML中设置.bottom属性。

这是因为我希望无论父视图的高度如何,我的视图始终位于窗口底部。


2
如果您知道子视图的尺寸(例如768,50),那么这就非常简单。在您的父视图中,例如 viewDidLoad 方法内部,您可以像下面这样添加子视图: [superView addSubview:subView]。其中,您的子视图可以按如下方式实例化:initWithFrame:CGRectMake(0, superview.bounds.height - 50, 768, 50)]。P.S 在文档中检查正确的代码。 - Lorenzo B
3个回答

43

在设置视图的frame属性来初始化其位置后,调整其autoresizingMask以包括UIViewAutoresizingFlexibleTopMargin。这将使其保持锚定在其父视图底部。


4
差不多成功了,只需将视图的框架 Y 坐标设置为负数,就能从底部向上拉动视图。 - Camsoft
1
惊人的简单,仍然在iOS 8中完美运行。 - user3344977
在iOS 8中,您可以使用自动布局来更好地表达这个需求,但这超出了本答案的范围。 :) - Jeff Kelley

2
您可以在XIB或Storyboard编辑器的Sizing面板上设置自动调整大小掩码值。

1
这应该就可以了。
public override void ViewDidLoad()
{
    base.ViewDidLoad();
    bottomButton.Alignment = UIStackViewAlignment.Bottom;          
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接