这是一个普遍的问题和具体问题。 一般用途 - 了解XF如何工作,特别是 - 用于我的自定义控件。
所以,问题是我应该将元素(由XF为特定系统(iOS或Android)生成)放入custom renderer
内的某个自定义位置。
简而言之,它将XF控件嵌入到本机界面中,更详细地说,我需要将控件放入自定义警报/弹出窗口。 问题是元素(视图)的最终大小可能与最初生成的XF大小不同。 所以我需要进一步调整它们(例如,适合父视图边界(同样,父大小是自定义的,通常依赖于平台和屏幕大小)。)
让我们说,我有:
<controls:AlertPanel
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand">
其中AlertPanel是:
public class AlertPanel : Frame
在自定义渲染器内(适用于iOS的AlertPanel):
// container is my native (manually created) view
container.AddSubview(this);
和this
是渲染器类(基本上从UIView继承)。
但如果我在IsVisible
属性设置为true
时执行此操作(并且动态创建(或至少定位)整个UI控件块),则通过以下方式设置边界:
this.Frame = new CGRect(...);
......并没有很好地反映出我的期望。
当我将应用(例如)10 ms 延迟后,效果会好得多,但是,这不是一个好方法,也不清楚这一切都有效。
另外,我还没有发现任何约束应用于XF生成的视图,因此我认为边界是严格定义或动态计算的。
任何线索?