c# - UIScrollView 将元素从它们的设置位置移动
问题描述
我正在为我组织中的所有工程师创建和 IOS 应用程序,以查看和完成他们的工作。但是,当使用 UIScrollView 时,它会将内容从我放置在故事板上的位置移开。
使用普通的 UIView(不滚动),元素放置在我放置它们的位置,但是如果页面上有大量开关(动态)放置,它可能会溢出,因此我需要能够滚动浏览项目。
我在这里使用故事板。创建我的主要布局。但是,从我的滚动布局中,我使用此代码添加按钮。
y = StartY
x = StartX
foreach (var component in DetailItem.Components)
{
y += yPls;
UISwitch sw = new UISwitch(new CoreGraphics.CGRect(x, y, 51, 31));
sw.OnTintColor = UIColor.Yellow;
sw.ThumbTintColor = UIColor.Blue;
sw.ValueChanged += (sender, e) => {
var comp = sender as UISwitch;
DetailItem.Components[component.Key] = comp.On;
};
UILabel lbl = new UILabel(new CoreGraphics.CGRect(x + 55, y, 200, 31));
lbl.Text = component.Key;
this.Add(sw);
this.Add(lbl);
}
问题是元素正在从我放置它们的位置移动,如下所示:
我目前选择了“工作名称:”标签,但您可以看到它正在被移动。
任何有关此问题的帮助或有关其发生原因的想法都会很棒!
解决方案
选择ViewController
in 故事板,然后在Properties
-> Widget
->Extend Edges
中,有一个名为Under Top Bars的选项,取消选中该选项,并且您在 scrollView 中的元素将保持在正确的位置。
这是一个屏幕截图:
在后面的代码中,它应该是:
this.EdgesForExtendedLayout = UIRectEdge.None or UIRectEdge.None.all or UIRectEdge.Bottom;
edgesForExtendedLayout
告诉应该扩展哪些边(左、右、上、下、全部、无或这些的任意组合)。扩展底部边缘等于“Under Bottom Bars”刻度,扩展顶部边缘等于“Under Top Bars”刻度。
推荐阅读
- git - 如何防止在 git 存储库中修改文件
- javascript - React 子组件在渲染前检测是否为空/null
- php - 显示数据库中的数组
- function - 应用程序设置中的 Azure Functions v2 连接字符串
- angular - Angular7 AuthGuard Firebase 声明
- android - CollapsingToolbarLayout 仅在顶部时展开
- reporting-services - 在 Team Foundation Server 2018 Express 中构建和部署 SSRS 报告
- laravel - Laravel:belongsTo 方法问题
- javascript - Google 电子表格:如何根据当前日期 html 发布页面
- kubernetes - “kubectl wait”永远等待