我正在努力为我的应用程序创建一个更好的用户界面,但我陷入了困境。我的设计技巧不好,所以我正在尝试使用PaintCode。 我想在用户名和密码组下面创建一个带有这个阴影的登录屏幕。
我不能使用UIView,所以我使用Rect。
在PaintCode中做了同样的事情var context = UIGraphics.GetCurrentContext();
//// Shadow Declarations
var shadow = UIColor.DarkGray.ColorWithAlpha(0.71f).CGColor;
var shadowOffset = new SizeF(6.1f, 4.1f);
var shadowBlurRadius = 5.0f;
//// Rectangle Drawing
UIBezierPath rectanglePath = new UIBezierPath();
rectanglePath.MoveTo(new PointF(18.0f, 239.0f));
rectanglePath.AddLineTo(new PointF(383.0f, 239.0f));
rectanglePath.AddLineTo(new PointF(383.0f, 13.0f));
rectanglePath.AddLineTo(new PointF(18.0f, 13.0f));
rectanglePath.AddLineTo(new PointF(18.0f, 239.0f));
rectanglePath.ClosePath();
context.SaveState();
context.SetShadowWithColor(shadowOffset, shadowBlurRadius, shadow);
UIColor.White.SetFill();
rectanglePath.Fill();
context.RestoreState();
现在我不知道如何处理该代码。在教程和文档中,他们通常会创建一个UIView,因此他们只是将UIView子类化并将其添加到Interface Builder中,这样您就可以始终确切地知道对象在最终应用程序中的结束位置。我不知道子类的内容以及如何在我的用户名和密码框下面绘制矩形。
答案 0 :(得分:3)
创建一个继承自UIView的自定义类,然后重写Draw函数并将自定义代码放在那里。
[Register("DrawView")]
public class DrawView : UIView
{
public override void Draw(System.Drawing.RectangleF rect)
{
在上面的示例中,如果要使用XCode设计器(或Xamarin Storyboard设计器)中的控件,则必须使用Register属性。