public override void ViewWillAppear(bool animated) { base.ViewWillAppear(animated); NavigationController.NavigationBar.SetBackgroundImage(null, UIBarMetrics.Default); NavigationController.NavigationBar.ShadowImage = null; NavigationController.NavigationBar.Translucent = true; NavigationController.NavigationBar.BackgroundColor = Constants.Color.DarkBlue; NavigationController.NavigationBar.BarTintColor = Constants.Color.DarkBlue; NavigationController.NavigationBar.TintColor = Constants.Color.White; NavigationController.NavigationBar.TitleTextAttributes = new UIStringAttributes { ForegroundColor = Constants.Color.White, Font = Constants.Fonts.RubikOfSize(Constants.Fonts.Size.Eighteen), }; var deviceTypeImageView = new UIImageView { TranslatesAutoresizingMaskIntoConstraints = false, Image = ViewModel.DeviceModel?.Sensor ?? false ? Constants.Assets.Lines : Constants.Assets.Power, }; View.AddSubview(deviceTypeImageView); deviceTypeImageView.TopAnchor.ConstraintEqualTo(View.SafeAreaLayoutGuide.TopAnchor, constant: Constants.Padding).Active = true; deviceTypeImageView.LeftAnchor.ConstraintEqualTo(View.LeftAnchor, constant: Constants.Padding).Active = true; deviceTypeImageView.WidthAnchor.ConstraintEqualTo(32).Active = true; deviceTypeImageView.HeightAnchor.ConstraintEqualTo(deviceTypeImageView.WidthAnchor).Active = true; var deviceLabel = new UILabel { TranslatesAutoresizingMaskIntoConstraints = false, Text = ViewModel.DeviceModel.Name, Font = Constants.Fonts.RubikOfSize(Constants.Fonts.Size.TwentyFour), TextColor = Constants.Color.DarkGray, }; View.AddSubview(deviceLabel); deviceLabel.CenterYAnchor.ConstraintEqualTo(deviceTypeImageView.CenterYAnchor).Active = true; deviceLabel.LeftAnchor.ConstraintEqualTo(deviceTypeImageView.RightAnchor, constant: Constants.Padding).Active = true; deviceLabel.RightAnchor.ConstraintEqualTo(View.RightAnchor, constant: -Constants.Padding).Active = true; var locationLabel = new UILabel { TranslatesAutoresizingMaskIntoConstraints = false, Text = "Device Location", Font = Constants.Fonts.RubikOfSize(Constants.Fonts.Size.Fourteen), TextColor = Constants.Color.DarkGray, }; View.AddSubview(locationLabel); locationLabel.TopAnchor.ConstraintEqualTo(deviceTypeImageView.BottomAnchor, constant: Constants.Padding).Active = true; locationLabel.LeftAnchor.ConstraintEqualTo(View.LeftAnchor, constant: Constants.Padding).Active = true; mapView = new MKMapView { TranslatesAutoresizingMaskIntoConstraints = false, CenterCoordinate = ViewModel.DeviceModel.Geolocation != null ? new CLLocationCoordinate2D(ViewModel.DeviceModel.Geolocation.Latitude, ViewModel.DeviceModel.Geolocation.Longitude) : new CLLocationCoordinate2D(), }; View.AddSubview(mapView); mapView.AddStandardShadow(); mapView.TopAnchor.ConstraintEqualTo(locationLabel.BottomAnchor, constant: Constants.Padding).Active = true; mapView.LeftAnchor.ConstraintEqualTo(View.LeftAnchor).Active = true; mapView.RightAnchor.ConstraintEqualTo(View.RightAnchor).Active = true; mapView.HeightAnchor.ConstraintEqualTo(View.HeightAnchor, multiplier: 0.25f).Active = true; pinView = new MKPinAnnotationView(CGRect.Empty) { TranslatesAutoresizingMaskIntoConstraints = false, }; var pinHeight = 39; View.AddSubview(pinView); pinView.CenterXAnchor.ConstraintEqualTo(mapView.CenterXAnchor, constant: pinView.CenterOffset.X).Active = true; pinView.CenterYAnchor.ConstraintEqualTo(mapView.CenterYAnchor, constant: pinView.CenterOffset.Y).Active = true; pinView.HeightAnchor.ConstraintEqualTo(pinHeight).Active = true; pinView.WidthAnchor.ConstraintEqualTo(pinHeight).Active = true; var moveLabel = new UILabel { TranslatesAutoresizingMaskIntoConstraints = false, Lines = 0, LineBreakMode = UILineBreakMode.WordWrap, TextColor = Constants.Color.MidGray, Font = Constants.Fonts.RubikOfSize(Constants.Fonts.Size.Twelve), Text = "MOVE THE PIN AS NEEDED TO MAKE SURE ITS LOCATION ACCURATELY REPRESENTS A PRECISE SPOT WHERE THE DEVICE WILL BE.", }; View.AddSubview(moveLabel); moveLabel.LeftAnchor.ConstraintEqualTo(View.LeftAnchor, constant: Constants.Padding).Active = true; moveLabel.TopAnchor.ConstraintEqualTo(mapView.BottomAnchor, constant: Constants.Padding).Active = true; moveLabel.RightAnchor.ConstraintEqualTo(View.RightAnchor, constant: -Constants.Padding).Active = true; buildingTextFieldView = new TextFieldView { TranslatesAutoresizingMaskIntoConstraints = false, LabelText = "Building", }; View.AddSubview(buildingTextFieldView); buildingTextFieldView.TopAnchor.ConstraintEqualTo(moveLabel.BottomAnchor, constant: Constants.Padding).Active = true; buildingTextFieldView.LeftAnchor.ConstraintEqualTo(View.LeftAnchor).Active = true; buildingTextFieldView.RightAnchor.ConstraintEqualTo(View.RightAnchor).Active = true; floorTextFieldView = new TextFieldView { TranslatesAutoresizingMaskIntoConstraints = false, LabelText = "Floor", }; View.AddSubview(floorTextFieldView); floorTextFieldView.TopAnchor.ConstraintEqualTo(buildingTextFieldView.BottomAnchor, constant: Constants.Padding / 2).Active = true; floorTextFieldView.LeftAnchor.ConstraintEqualTo(View.LeftAnchor).Active = true; floorTextFieldView.RightAnchor.ConstraintEqualTo(View.RightAnchor).Active = true; roomTextFieldView = new TextFieldView { TranslatesAutoresizingMaskIntoConstraints = false, LabelText = "Room", }; View.AddSubview(roomTextFieldView); roomTextFieldView.TopAnchor.ConstraintEqualTo(floorTextFieldView.BottomAnchor, constant: Constants.Padding / 2).Active = true; roomTextFieldView.LeftAnchor.ConstraintEqualTo(View.LeftAnchor).Active = true; roomTextFieldView.RightAnchor.ConstraintEqualTo(View.RightAnchor).Active = true; wifiTextFieldView = new TextFieldView { TranslatesAutoresizingMaskIntoConstraints = false, LabelText = "WiFi", }; View.AddSubview(wifiTextFieldView); wifiTextFieldView.TopAnchor.ConstraintEqualTo(roomTextFieldView.BottomAnchor, constant: Constants.Padding * 2).Active = true; wifiTextFieldView.LeftAnchor.ConstraintEqualTo(View.LeftAnchor).Active = true; wifiTextFieldView.RightAnchor.ConstraintEqualTo(View.RightAnchor).Active = true; var bottomAreaLayoutGuide = new UILayoutGuide(); View.AddLayoutGuide(bottomAreaLayoutGuide); bottomAreaLayoutGuide.TopAnchor.ConstraintEqualTo(wifiTextFieldView.BottomAnchor).Active = true; bottomAreaLayoutGuide.BottomAnchor.ConstraintEqualTo(View.SafeAreaLayoutGuide.BottomAnchor).Active = true; doneButton = new UIButton { TranslatesAutoresizingMaskIntoConstraints = false, BackgroundColor = Constants.Color.DarkBlue, }; doneButton.SetAttributedTitle(new NSAttributedString("DONE", new UIStringAttributes { Font = Constants.Fonts.RubikOfSize(Constants.Fonts.Size.Eighteen), ForegroundColor = Constants.Color.White, }), UIControlState.Normal); doneButton.AddStandardShadow(); View.AddSubview(doneButton); doneButton.WidthAnchor.ConstraintEqualTo(View.WidthAnchor, multiplier: 0.5f).Active = true; doneButton.HeightAnchor.ConstraintEqualTo(44).Active = true; doneButton.CenterXAnchor.ConstraintEqualTo(View.CenterXAnchor).Active = true; doneButton.CenterYAnchor.ConstraintEqualTo(bottomAreaLayoutGuide.CenterYAnchor).Active = true; }
public override void ViewDidLoad() { base.ViewDidLoad(); NavigationItem.LeftBarButtonItem = new UIBarButtonItem(Constants.Assets.ArrowLeft, UIBarButtonItemStyle.Plain, (sender, e) => { NavigationController.PopViewController(true); }); NavigationController.NavigationBar.TitleTextAttributes = new UIStringAttributes { ForegroundColor = Constants.Color.White, Font = Constants.Fonts.RubikOfSize(Constants.Fonts.Size.Eighteen), }; NavigationController.InteractivePopGestureRecognizer.Delegate = null; View.BackgroundColor = Constants.Color.BackgroundLightGray; Title = $"Set Up {ViewModel.DeviceTypeAsString}"; cameraView = new CameraView { TranslatesAutoresizingMaskIntoConstraints = false }; View.AddSubview(cameraView); cameraView.TopAnchor.ConstraintEqualTo(View.SafeAreaLayoutGuide.TopAnchor).Active = true; cameraView.LeftAnchor.ConstraintEqualTo(View.LeftAnchor).Active = true; cameraView.RightAnchor.ConstraintEqualTo(View.RightAnchor).Active = true; cameraView.HeightAnchor.ConstraintEqualTo(View.HeightAnchor, multiplier: 0.55f).Active = true; var padding = Constants.Padding; var circleSize = Constants.CircleNumberSize; var circleView = new CircleNumberView { TranslatesAutoresizingMaskIntoConstraints = false, Number = 3, }; View.AddSubview(circleView); circleView.TopAnchor.ConstraintEqualTo(cameraView.BottomAnchor, constant: padding).Active = true; circleView.LeftAnchor.ConstraintEqualTo(View.LeftAnchor, constant: padding).Active = true; circleView.WidthAnchor.ConstraintEqualTo(circleSize).Active = true; circleView.HeightAnchor.ConstraintEqualTo(circleView.WidthAnchor).Active = true; var scanLabel = new UILabel { TranslatesAutoresizingMaskIntoConstraints = false, TextColor = Constants.Color.MidGray, Font = Constants.Fonts.RubikOfSize(Constants.Fonts.Size.Eighteen), AdjustsFontSizeToFitWidth = true, MinimumScaleFactor = 0.1f, LineBreakMode = UILineBreakMode.WordWrap, Lines = 0, Text = $"Scan the QR Code on the {ViewModel.DeviceTypeAsString.ToLower()} to connect it to this phone.", }; View.AddSubview(scanLabel); scanLabel.LeftAnchor.ConstraintEqualTo(circleView.RightAnchor, constant: padding).Active = true; scanLabel.CenterYAnchor.ConstraintEqualTo(circleView.CenterYAnchor).Active = true; scanLabel.RightAnchor.ConstraintEqualTo(View.RightAnchor, constant: -padding).Active = true; var bottomLayoutGuide = new UILayoutGuide(); View.AddLayoutGuide(bottomLayoutGuide); bottomLayoutGuide.TopAnchor.ConstraintEqualTo(scanLabel.BottomAnchor).Active = true; bottomLayoutGuide.BottomAnchor.ConstraintEqualTo(View.SafeAreaLayoutGuide.BottomAnchor).Active = true; noQRCodeButton = new UIButton { TranslatesAutoresizingMaskIntoConstraints = false, BackgroundColor = Constants.Color.DarkBlue, }; noQRCodeButton.SetAttributedTitle(new NSAttributedString("NO QR CODE?", new UIStringAttributes { Font = Constants.Fonts.RubikOfSize(Constants.Fonts.Size.Eighteen), ForegroundColor = Constants.Color.White, }), UIControlState.Normal); noQRCodeButton.AddStandardShadow(); View.AddSubview(noQRCodeButton); noQRCodeButton.WidthAnchor.ConstraintEqualTo(View.WidthAnchor, multiplier: 0.5f).Active = true; noQRCodeButton.HeightAnchor.ConstraintEqualTo(44).Active = true; noQRCodeButton.CenterXAnchor.ConstraintEqualTo(View.CenterXAnchor).Active = true; noQRCodeButton.CenterYAnchor.ConstraintEqualTo(bottomLayoutGuide.CenterYAnchor).Active = true; }
public override void ViewDidLoad() { base.ViewDidLoad(); View.BackgroundColor = Constants.Color.BackgroundLightGray; Title = "Set Up New Device"; NavigationItem.LeftBarButtonItem = new UIBarButtonItem(Constants.Assets.ArrowLeft, UIBarButtonItemStyle.Plain, (sender, e) => { NavigationController.PopViewController(true); }); NavigationController.InteractivePopGestureRecognizer.Delegate = null; var topHalfLayoutGuide = new UILayoutGuide(); View.AddLayoutGuide(topHalfLayoutGuide); topHalfLayoutGuide.TopAnchor.ConstraintEqualTo(View.SafeAreaLayoutGuide.TopAnchor).Active = true; topHalfLayoutGuide.LeftAnchor.ConstraintEqualTo(View.LeftAnchor).Active = true; topHalfLayoutGuide.RightAnchor.ConstraintEqualTo(View.RightAnchor).Active = true; topHalfLayoutGuide.HeightAnchor.ConstraintEqualTo(View.SafeAreaLayoutGuide.HeightAnchor, multiplier: 0.5f).Active = true; var bottomHalfLayoutGuide = new UILayoutGuide(); View.AddLayoutGuide(bottomHalfLayoutGuide); bottomHalfLayoutGuide.TopAnchor.ConstraintEqualTo(topHalfLayoutGuide.BottomAnchor).Active = true; bottomHalfLayoutGuide.LeftAnchor.ConstraintEqualTo(View.LeftAnchor).Active = true; bottomHalfLayoutGuide.RightAnchor.ConstraintEqualTo(View.RightAnchor).Active = true; bottomHalfLayoutGuide.BottomAnchor.ConstraintEqualTo(View.SafeAreaLayoutGuide.BottomAnchor).Active = true; var padding = Constants.Padding; var circleSize = Constants.CircleNumberSize; var oneCircleNumberView = new CircleNumberView { TranslatesAutoresizingMaskIntoConstraints = false, Number = 1, }; View.AddSubview(oneCircleNumberView); oneCircleNumberView.TopAnchor.ConstraintEqualTo(topHalfLayoutGuide.TopAnchor, constant: padding).Active = true; oneCircleNumberView.LeftAnchor.ConstraintEqualTo(topHalfLayoutGuide.LeftAnchor, constant: padding).Active = true; oneCircleNumberView.WidthAnchor.ConstraintEqualTo(circleSize).Active = true; oneCircleNumberView.HeightAnchor.ConstraintEqualTo(oneCircleNumberView.WidthAnchor).Active = true; var deviceTypeLabel = new UILabel { TranslatesAutoresizingMaskIntoConstraints = false, TextColor = Constants.Color.MidGray, Font = Constants.Fonts.RubikOfSize(Constants.Fonts.Size.Eighteen), AdjustsFontSizeToFitWidth = true, MinimumScaleFactor = 0.1f, LineBreakMode = UILineBreakMode.Clip, Lines = 0, Text = "What type of device?", }; View.AddSubview(deviceTypeLabel); deviceTypeLabel.LeftAnchor.ConstraintEqualTo(oneCircleNumberView.RightAnchor, constant: padding).Active = true; deviceTypeLabel.CenterYAnchor.ConstraintEqualTo(oneCircleNumberView.CenterYAnchor).Active = true; deviceTypeLabel.RightAnchor.ConstraintEqualTo(topHalfLayoutGuide.RightAnchor).Active = true; buttonCheckboxView = new CheckBoxItemView { TranslatesAutoresizingMaskIntoConstraints = false, TextColor = Constants.Color.DarkGray, SelectedTextColor = Constants.Color.DarkBlue, Text = "Button", }; buttonCheckboxView.OnTap += HandleCheckboxTap; View.AddSubview(buttonCheckboxView); buttonCheckboxView.LeftAnchor.ConstraintEqualTo(deviceTypeLabel.LeftAnchor, constant: -Constants.Padding).Active = true; buttonCheckboxView.TopAnchor.ConstraintEqualTo(deviceTypeLabel.BottomAnchor, constant: padding).Active = true; buttonCheckboxView.RightAnchor.ConstraintEqualTo(topHalfLayoutGuide.RightAnchor, constant: -padding).Active = true; buttonCheckboxView.HeightAnchor.ConstraintEqualTo(topHalfLayoutGuide.HeightAnchor, multiplier: 0.25f).Active = true; soundSensorCheckboxView = new CheckBoxItemView { TranslatesAutoresizingMaskIntoConstraints = false, TextColor = Constants.Color.DarkGray, SelectedTextColor = Constants.Color.DarkBlue, Text = "Sound Sensor", }; soundSensorCheckboxView.OnTap += HandleCheckboxTap; View.AddSubview(soundSensorCheckboxView); soundSensorCheckboxView.LeftAnchor.ConstraintEqualTo(deviceTypeLabel.LeftAnchor, constant: -Constants.Padding).Active = true; soundSensorCheckboxView.TopAnchor.ConstraintEqualTo(buttonCheckboxView.BottomAnchor, constant: padding).Active = true; soundSensorCheckboxView.RightAnchor.ConstraintEqualTo(topHalfLayoutGuide.RightAnchor, constant: -padding).Active = true; soundSensorCheckboxView.HeightAnchor.ConstraintEqualTo(topHalfLayoutGuide.HeightAnchor, multiplier: 0.25f).Active = true; lightCheckboxView = new CheckBoxItemView { TranslatesAutoresizingMaskIntoConstraints = false, TextColor = Constants.Color.DarkGray, SelectedTextColor = Constants.Color.DarkBlue, Text = "Light", }; lightCheckboxView.OnTap += HandleCheckboxTap; View.AddSubview(lightCheckboxView); lightCheckboxView.LeftAnchor.ConstraintEqualTo(deviceTypeLabel.LeftAnchor, constant: -Constants.Padding).Active = true; lightCheckboxView.TopAnchor.ConstraintEqualTo(soundSensorCheckboxView.BottomAnchor, constant: padding).Active = true; lightCheckboxView.RightAnchor.ConstraintEqualTo(topHalfLayoutGuide.RightAnchor, constant: -padding).Active = true; lightCheckboxView.HeightAnchor.ConstraintEqualTo(topHalfLayoutGuide.HeightAnchor, multiplier: 0.25f).Active = true; var twoCircleNumberView = new CircleNumberView { TranslatesAutoresizingMaskIntoConstraints = false, Number = 2, }; View.AddSubview(twoCircleNumberView); twoCircleNumberView.TopAnchor.ConstraintEqualTo(bottomHalfLayoutGuide.TopAnchor, constant: padding).Active = true; twoCircleNumberView.LeftAnchor.ConstraintEqualTo(bottomHalfLayoutGuide.LeftAnchor, constant: padding).Active = true; twoCircleNumberView.WidthAnchor.ConstraintEqualTo(circleSize).Active = true; twoCircleNumberView.HeightAnchor.ConstraintEqualTo(twoCircleNumberView.WidthAnchor).Active = true; var powerLabel = new UILabel { TranslatesAutoresizingMaskIntoConstraints = false, TextColor = Constants.Color.MidGray, Font = Constants.Fonts.RubikOfSize(Constants.Fonts.Size.Eighteen), AdjustsFontSizeToFitWidth = true, MinimumScaleFactor = 0.1f, LineBreakMode = UILineBreakMode.Clip, Lines = 0, Text = "Turn on the device power.", }; View.AddSubview(powerLabel); powerLabel.LeftAnchor.ConstraintEqualTo(twoCircleNumberView.RightAnchor, constant: padding).Active = true; powerLabel.CenterYAnchor.ConstraintEqualTo(twoCircleNumberView.CenterYAnchor).Active = true; powerLabel.RightAnchor.ConstraintEqualTo(bottomHalfLayoutGuide.RightAnchor).Active = true; nextButton = new UIButton { TranslatesAutoresizingMaskIntoConstraints = false, BackgroundColor = Constants.Color.DarkBlue, Enabled = false, Alpha = 0.4f, }; nextButton.SetAttributedTitle(new NSAttributedString("NEXT", new UIStringAttributes { Font = Constants.Fonts.RubikOfSize(Constants.Fonts.Size.Eighteen), ForegroundColor = Constants.Color.White, }), UIControlState.Normal); var buttonCenterLayoutGuide = new UILayoutGuide(); View.AddLayoutGuide(buttonCenterLayoutGuide); buttonCenterLayoutGuide.TopAnchor.ConstraintEqualTo(powerLabel.BottomAnchor).Active = true; buttonCenterLayoutGuide.BottomAnchor.ConstraintEqualTo(bottomHalfLayoutGuide.BottomAnchor).Active = true; View.AddSubview(nextButton); nextButton.WidthAnchor.ConstraintEqualTo(bottomHalfLayoutGuide.WidthAnchor, multiplier: 0.5f).Active = true; nextButton.HeightAnchor.ConstraintEqualTo(44).Active = true; nextButton.CenterYAnchor.ConstraintEqualTo(buttonCenterLayoutGuide.CenterYAnchor).Active = true; nextButton.CenterXAnchor.ConstraintEqualTo(bottomHalfLayoutGuide.CenterXAnchor).Active = true; nextButton.AddStandardShadow(); }