private UIView SwapViews(UIView oldView, Func <UIView> newViewProvider) { var currentPosition = oldView?.Superview?.Subviews.IndexOf(oldView) ?? -1; if (currentPosition != -1) { var newContent = newViewProvider(); var currentSuperview = oldView?.Superview; oldView?.RemoveFromSuperview(); RaiseMaterializing(); #if __IOS__ currentSuperview?.InsertSubview(newContent, currentPosition); return(newContent); #elif __MACOS__ if (currentSuperview is {})
private UIView SwapViews(UIView oldView, Func <UIView> newViewProvider) { var currentPosition = oldView?.Superview?.Subviews.IndexOf(oldView) ?? -1; if (currentPosition != -1) { var newContent = newViewProvider(); var currentSuperview = oldView?.Superview; oldView?.RemoveFromSuperview(); #if __IOS__ currentSuperview?.InsertSubview(newContent, currentPosition); return(newContent); #elif __MACOS__ currentSuperview.AddSubview(newContent, NSWindowOrderingMode.Above, currentSuperview.Subviews[Math.Max(0, currentPosition - 1)]); return(newContent); #endif } return(null); }