我是 Xamarin 和 iOS 开发的新手。我在创建如下图所示的布局时遇到问题。
我想在顶部和底部有两个固定大小的 View ,中间有一个灵活的 View 。我希望中间 View 灵活,因为我希望在 3,5 和 4 英寸屏幕上具有相同的布局。
能否请您给我一些实现该目标的线索?
最佳答案
如果您不想支持旋转,您可以创建固定布局,因为屏幕尺寸在运行时不会改变。在这种情况下,只需将顶 View 放在顶部,底部 View 放在 View.Bounds.Height - requiredBottomViewHeight 中,中间 View 的高度等于父 View 减去底部和顶部高度之和。
如果您需要轮换,请使用:
- AutoResizingMask
- 覆盖 LayoutSubviews()
- 或自动布局。为了简化自动布局,Frank Krueger named EasyLayout 制作了一个很棒的辅助类。您可以找到 here 示例。
最近推荐的方法是使用自动布局和约束。然而,在这种简单的情况下,您可以安全地使用自动调整大小的蒙版。下面的代码将生成您想要的布局,并且还支持旋转。您可以通过如下所示设置自动调整大小蒙版,在 Storyboard Designer 或 Interface Builder 中生成相同的效果。
public override void ViewDidLoad ()
{
var topView = new UIView {
BackgroundColor = UIColor.Red,
Frame = new RectangleF(0, 0, this.View.Bounds.Width, 50),
AutoresizingMask = UIViewAutoresizing.FlexibleWidth
};
var bottomView = new UIView {
BackgroundColor = UIColor.Blue,
Frame = new RectangleF(0, this.View.Bounds.Height - 50, 320, 50),
AutoresizingMask = UIViewAutoresizing.FlexibleTopMargin | UIViewAutoresizing.FlexibleWidth
};
var middleView = new UIView {
Frame = new RectangleF(0, topView.Frame.Bottom, this.View.Bounds.Width, this.View.Bounds.Height - topView.Bounds.Height - bottomView.Bounds.Height),
BackgroundColor = UIColor.Green,
AutoresizingMask = UIViewAutoresizing.FlexibleHeight | UIViewAutoresizing.FlexibleWidth
};
this.View.AddSubviews (topView, middleView, bottomView);
}
关于ios - 如何在 xamarin 中创建这样的布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21974783/