summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2615.cs
blob: ff4aca23fe5eb5c17694e620c16dfd4bb6db4b9e (plain)
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
using Xamarin.Forms.CustomAttributes;
using Xamarin.Forms.Internals;

namespace Xamarin.Forms.Controls
{
	[Preserve (AllMembers=true)]
	[Issue (IssueTracker.Github, 2615, "iOS Cell Reuse screws up when cells are both ViewCell with different children", PlatformAffected.iOS)]
	public class Issue2615 : ContentPage
	{
		public Issue2615 ()
		{
			Title = "Test Blank Rows";

			var tableView = new TableView ();
			tableView.HasUnevenRows = true;

			var tableHeaderSection = new TableSection ();

			var viewHeaderCell = new ViewCell ();

			var headerCellLayout = new StackLayout ();
			headerCellLayout.Orientation = StackOrientation.Vertical;
			headerCellLayout.Spacing = 6;
			headerCellLayout.HorizontalOptions = LayoutOptions.Fill;
			headerCellLayout.VerticalOptions = LayoutOptions.Fill;

			var largeNumberLabel = new Label ();
			largeNumberLabel.FontFamily = "HelveticaNeue-Light";
			largeNumberLabel.FontSize = 52;
			largeNumberLabel.Text = "90";
			largeNumberLabel.TextColor = Color.FromRgb(0.00392156885936856, 0.47843137383461, 0.996078431606293);
			largeNumberLabel.HorizontalOptions = LayoutOptions.Center;
			largeNumberLabel.VerticalOptions = LayoutOptions.Fill;
			headerCellLayout.Children.Add(largeNumberLabel);

			var nameLabel = new Label ();
			nameLabel.FontFamily = "HelveticaNeue-Light";
			nameLabel.FontSize = 17;
			nameLabel.Text = "Name: John Doe";
			nameLabel.HorizontalOptions = LayoutOptions.CenterAndExpand;
			nameLabel.VerticalOptions = LayoutOptions.Center;
			headerCellLayout.Children.Add(nameLabel);

			viewHeaderCell.Height = 100;
			viewHeaderCell.View = headerCellLayout;
			tableHeaderSection.Add (viewHeaderCell);
			tableView.Root.Add (tableHeaderSection);

			for (int sectionNumber = 1; sectionNumber < 11; sectionNumber++) {
				var tableSection = new TableSection ("Section #" + sectionNumber);

				for (int cellNumber = 1; cellNumber < 11; cellNumber++) {

					var viewCell = new ViewCell ();
					var viewCellLayout = new StackLayout ();
					viewCellLayout.Orientation = StackOrientation.Horizontal;
					viewCellLayout.Spacing = 6;
					viewCellLayout.Padding = new Thickness (20, 10);
					viewCellLayout.HorizontalOptions = LayoutOptions.Center;
					viewCellLayout.VerticalOptions = LayoutOptions.Center;

					var titleLabel = new Label ();
					titleLabel.FontFamily = "HelveticaNeue-Light";
					titleLabel.FontSize = 17;
					titleLabel.Text = "Cell #" + cellNumber;
					viewCellLayout.Children.Add(titleLabel);

					viewCell.View = viewCellLayout;

					tableSection.Add (viewCell);
				}

				tableView.Root.Add (tableSection);

			}

			Content = tableView;

		}
	}
}