public static void CenterView(this UIScrollView scrollView, UIView viewToCenter, RectangleF keyboardFrame, bool animated = false) { var scrollFrame = scrollView.Frame; var adjustedFrame = UIApplication.SharedApplication.KeyWindow.ConvertRectFromView(scrollFrame, scrollView.Superview); var intersect = RectangleF.Intersect(adjustedFrame, keyboardFrame); scrollView.CenterView(viewToCenter, IsLandscape() ? intersect.Width : intersect.Height, animated: animated); }
public static void CenterView(this UIScrollView scrollView, UIView viewToCenter, CGRect keyboardFrame, bool animated = false) { var scrollFrame = scrollView.Frame; var adjustedFrame = UIApplication.SharedApplication.KeyWindow.ConvertRectFromView(scrollFrame, scrollView.Superview); var intersect = CGRect.Intersect(adjustedFrame, keyboardFrame); var height = intersect.Height; if (!UIDevice.CurrentDevice.CheckSystemVersion(8, 0) && IsLandscape()) { height = intersect.Width; } scrollView.CenterView(viewToCenter, height, animated: animated); }