public override void LayoutSubviews() { const int ThinPad = 3; const int ThickPad = 10; const int LineHeight = 1; var w = Frame.Width; var h = Frame.Height; SignaturePrompt.SizeToFit(); ClearLabel.SizeToFit(); var captionHeight = Caption.SizeThatFits(Caption.Frame.Size).Height; var clearButtonHeight = (int)ClearLabel.Font.LineHeight + 1; var rect = new CGRect(0, 0, w, h); SignaturePadCanvas.Frame = rect; BackgroundImageView.Frame = rect; var top = h; top = top - ThinPad - captionHeight; Caption.Frame = new CGRect(ThickPad, top, w - ThickPad - ThickPad, captionHeight); top = top - ThinPad - SignatureLine.Frame.Height; SignatureLine.Frame = new CGRect(ThickPad, top, w - ThickPad - ThickPad, LineHeight); top = top - ThinPad - SignaturePrompt.Frame.Height; SignaturePrompt.Frame = new CGRect(ThickPad, top, SignaturePrompt.Frame.Width, SignaturePrompt.Frame.Height); ClearLabel.Frame = new CGRect(w - ThickPad - ClearLabel.Frame.Width, ThickPad, ClearLabel.Frame.Width, clearButtonHeight); }