我使用ContentView创建了一个Xamarin表单,并为Android创建了一个渲染器 . 现在我必须为IOS创建一个渲染器 .
在android渲染器中,我可以覆盖onSizeChanged并将这些宽度/高度值传递给自定义xamarin-form视图 .
protected override void OnSizeChanged(int w, int h, int oldw, int oldh) {
base.OnSizeChanged(w,h, oldw, old);
Element.SizChanged(w,h);
}
IOS中的UIView是否有类似的方法来覆盖?我试过覆盖Frame属性并在Element.SizeChanged(w,h)中调用,但我会得到TargetInvocationException .
附: SizeChanged方法是我的自定义虚方法而不是android方法 .
1 回答
覆盖
LayoutSubviews
通常用于跟踪调整大小事件,因为UIView
也负责所有子视图 .我倾向于覆盖
Bounds
和Frame
,具体取决于我正在做什么以及该视图包含什么...根据父级,View的LayoutSubviews
可以被调用很多...假设一个UIView子类如:
行使它:
结果是:
有关其他信息,请参阅此SO:Is there a UIView resize event?