如何解决如何以编程方式向视图添加垂直或水平 StackView
我能够以编程方式向主视图添加垂直和水平 StackView,但该视图未执行任何堆叠类型布局。
这是我目前所拥有的:
// create vertical stack
var viewSize = new CGSize(200,150);
var viewLocation = new CGPoint(0,0);
var viewRectangle = new CGRect(viewLocation,viewSize);
var frame = new CGRect(0,200,20);
var stackView = new NSStackView(viewRectangle);
var button1 = new NSButton(frame) {
Title = "Button 1"
};
var frame2 = new CGRect(0,10,20);
var button2 = new NSButton(frame2) {
Title = "Button 2"
};
// show background to help see size and position
stackView.WantsLayer = true;
stackView.Layer.BackgroundColor = new CGColor(150,150,1);
stackView.Orientation = NSUserInterfaceLayoutOrientation.Vertical;
stackView.Alignment = NSLayoutAttribute.Top;
stackView.Distribution = NSStackViewDistribution.Fill;
stackView.Spacing = 10;
stackView.AddSubview(button1);
stackView.AddSubview(button2);
stackView.NeedsLayout = true;
frame1.AddSubview(stackView);
截图如下。
顶视图是在界面生成器中手动创建的垂直堆栈。底部是根据上述代码创建的程序化代码:
更新:
我在 Xamarin iOS 文档中找到了一些示例代码:
https://docs.microsoft.com/en-us/xamarin/ios/user-interface/controls/uistackview
有些属性我找不到,但其中一些是有效的。
主要的启用差异是您需要使用 addArrangedSubViews() 方法而不是 addSubviews() 方法。
stackView.AddArrangedSubview(button);
使用 Xamarin 和 C# 的 Visual Studio for Mac
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。