-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCardView.cs
More file actions
126 lines (111 loc) · 3.05 KB
/
CardView.cs
File metadata and controls
126 lines (111 loc) · 3.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
using System;
using System.ComponentModel;
using CoreGraphics;
using Foundation;
using UIKit;
namespace XamarinApp.Ios
{
[Register("CardView"), DesignTimeVisible(true)]
public class CardView : UIView
{
private float cornerRadius;
private UIColor shadowColor;
private int shadowOffsetHeight;
private int shadowOffsetWidth;
private float shadowOpacity;
[Export("shadowOpacity"), Browsable(true)]
public float ShadowOpacity
{
get { return shadowOpacity; }
set
{
shadowOpacity = value;
SetNeedsDisplay();
}
}
[Export("shadowOffsetWidth"), Browsable(true)]
public int ShadowOffsetWidth
{
get { return shadowOffsetWidth; }
set
{
shadowOffsetWidth = value;
SetNeedsDisplay();
}
}
[Export("shadowOffsetHeight"), Browsable(true)]
public int ShadowOffsetHeight
{
get { return shadowOffsetHeight; }
set
{
shadowOffsetHeight = value;
SetNeedsDisplay();
}
}
[Export("CornerRadius"), Browsable(true)]
public float CornerRadius
{
get { return cornerRadius; }
set
{
cornerRadius = value;
SetNeedsDisplay();
}
}
[Export("ShadowColor"), Browsable(true)]
public UIColor ShadowColor
{
get { return shadowColor; }
set
{
shadowColor = value;
SetNeedsDisplay();
}
}
public CardView()
{
Initialize();
}
public CardView(NSCoder coder) : base(coder)
{
Initialize();
}
protected CardView(NSObjectFlag t) : base(t)
{
Initialize();
}
protected internal CardView(IntPtr handle) : base(handle)
{
Initialize();
}
public CardView(CGRect frame) : base(frame)
{
Initialize();
}
public override void AwakeFromNib()
{
base.AwakeFromNib();
Initialize();
}
private void Initialize()
{
ShadowColor = UIColor.Black;
CornerRadius = 2;
ShadowOffsetHeight = 3;
ShadowOffsetWidth = 0;
ShadowOpacity = 0.5f;
}
public override void LayoutSubviews()
{
base.LayoutSubviews();
Layer.CornerRadius = CornerRadius;
UIBezierPath bezierPath = UIBezierPath.FromRoundedRect(Bounds, CornerRadius);
Layer.MasksToBounds = false;
Layer.ShadowColor = ShadowColor.CGColor;
Layer.ShadowOffset = new CGSize(shadowOffsetWidth, shadowOffsetHeight);
Layer.ShadowOpacity = shadowOpacity;
Layer.ShadowPath = bezierPath.CGPath;
}
}
}