protected override void OnElementChanged(VisualElementChangedEventArgs e) { base.OnElementChanged(e); if (e.OldElement != null || Element == null) { return; } try { // Initializing the energy module. _frame = UIScreen.MainScreen.ApplicationFrame; // Search for the navigation controller UINavigationController nav = null; foreach (var vc in UIApplication.SharedApplication.Windows[0].RootViewController.ChildViewControllers) { if (vc is UINavigationController) { nav = (UINavigationController)vc; } } _frame = new CGRect(_frame.X, _frame.Y + nav.NavigationBar.Frame.Size.Height, _frame.Width, _frame.Height - nav.NavigationBar.Frame.Size.Height); _scanView = new AnylineEnergyModuleView(_frame); _error = null; var success = _scanView.SetupWithLicenseKey(LicenseKey, Self, out _error); if (!success) { (_alert = new UIAlertView("Error", _error.DebugDescription, (IUIAlertViewDelegate)null, "OK", null)).Show(); } _scanView.CancelOnResult = true; // After setup, add the scanView to the view View.AddSubview(_scanView); _error = null; _scanView.SetScanMode(ALScanMode.AnalogMeter, out _error); if (_error != null) { (_alert = new UIAlertView("Error", _error.DebugDescription, (IUIAlertViewDelegate)null, "OK", null)).Show(); } // Start scanning StartScanning(); } catch (Exception ex) { Debug.WriteLine(@"ERROR: ", ex.Message); } }
public override void ViewDidLoad() { base.ViewDidLoad(); // Initializing the energy module. _frame = UIScreen.MainScreen.ApplicationFrame; _frame = new CGRect(_frame.X, _frame.Y + NavigationController.NavigationBar.Frame.Size.Height, _frame.Width, _frame.Height - NavigationController.NavigationBar.Frame.Size.Height); _anylineEnergyView = new AnylineEnergyModuleView(_frame); _error = null; _success = _anylineEnergyView.SetupWithLicenseKey(_licenseKey, Self, out _error); if (!_success) { (_alert = new UIAlertView("Error", _error.DebugDescription, (IUIAlertViewDelegate)null, "OK", null)).Show(); } // We'll stop scanning manually _anylineEnergyView.CancelOnResult = false; // After setup is complete we add the module to the view of this view controller View.AddSubview(_anylineEnergyView); _error = null; _anylineEnergyView.SetScanMode(_segmentItems.ElementAt(_defaultIndex).Value, out _error); if (_error != null) { (_alert = new UIAlertView("Error", _error.DebugDescription, (IUIAlertViewDelegate)null, "OK", null)).Show(); } // Create a subview for toggling native barcode scanning: _toggleBarcodeView = new UIView(new CGRect(0, 0, 150, 50)); _toggleBarcodeLabel = new UILabel(new CGRect(0, 0, 100, 30)); _toggleBarcodeLabel.Text = "Detect Barcodes"; _toggleBarcodeLabel.TextColor = UIColor.White; _toggleBarcodeLabel.SizeToFit(); _toggleBarcodeSwitch = new UISwitch(); _toggleBarcodeSwitch.On = false; _toggleBarcodeSwitch.TintColor = UIColor.White; _toggleBarcodeSwitch.OnTintColor = new UIColor(0, 153 / 255, 1, 1); _toggleBarcodeSwitch.ValueChanged += OnValueChanged; _toggleBarcodeView.AddSubview(_toggleBarcodeLabel); _toggleBarcodeView.AddSubview(_toggleBarcodeSwitch); if (Title != "Heat Meter Scan") { View.AddSubview(_toggleBarcodeView); } // We don't need a segment control for only one option: if (_segmentItems.Count > 1) { List <string> list = new List <string>(); foreach (var key in _segmentItems.Keys) { list.Add(key); } var obj = list.ToArray <object>(); _meterTypeSegment = new UISegmentedControl(obj); //adjust the segmentcontrol size so all elements fit to the view if (_meterTypeSegment.NumberOfSegments > 3) { for (int i = 0; i < _meterTypeSegment.NumberOfSegments; i++) { _meterTypeSegment.SetWidth(View.Frame.Width / (_meterTypeSegment.NumberOfSegments + 1), i); } _meterTypeSegment.ApportionsSegmentWidthsByContent = true; } _meterTypeSegment.Center = new CGPoint(View.Center.X, View.Frame.Size.Height - 40); _meterTypeSegment.SelectedSegment = _defaultIndex; _meterTypeSegment.ValueChanged += HandleSegmentChange; View.AddSubview(_meterTypeSegment); _selectionLabel = new UILabel(new CGRect(_meterTypeSegment.Frame.X, _meterTypeSegment.Frame.Y - 35, _meterTypeSegment.Frame.Width, 35)); _selectionLabel.TextColor = UIColor.White; _selectionLabel.Text = _labelText; View.AddSubview(_selectionLabel); } }
public override void ViewDidLoad() { base.ViewDidLoad(); // Initializing the energy module. frame = UIScreen.MainScreen.ApplicationFrame; frame = new CGRect(frame.X, frame.Y + NavigationController.NavigationBar.Frame.Size.Height, frame.Width, frame.Height - NavigationController.NavigationBar.Frame.Size.Height); anylineEnergyView = new AnylineEnergyModuleView(frame); error = null; success = anylineEnergyView.SetupWithLicenseKey(licenseKey, this.Self, out error); if (!success) { (alert = new UIAlertView("Error", error.DebugDescription, null, "OK", null)).Show(); } //we'll stop scanning manually anylineEnergyView.CancelOnResult = false; // After setup is complete we add the module to the view of this view controller View.AddSubview(anylineEnergyView); anylineEnergyView.ScanMode = segmentItems.ElementAt(defaultIndex).Value; //we don't need a segment control for only one option: if (segmentItems.Count > 1) { meterTypeSegment = new UISegmentedControl(segmentItems.Keys.ToArray()); //adjust the segmentcontrol size so all elements fit to the view if (meterTypeSegment.NumberOfSegments > 3) { for (int i = 0; i < meterTypeSegment.NumberOfSegments; i++) { meterTypeSegment.SetWidth(View.Frame.Width / (meterTypeSegment.NumberOfSegments + 1), i); } meterTypeSegment.ApportionsSegmentWidthsByContent = true; } meterTypeSegment.Center = new CGPoint(View.Center.X, View.Frame.Size.Height - 40); meterTypeSegment.SelectedSegment = this.defaultIndex; meterTypeSegment.ValueChanged += HandleSegmentChange; View.AddSubview(meterTypeSegment); selectionLabel = new UILabel(new CGRect(meterTypeSegment.Frame.X, meterTypeSegment.Frame.Y - 35, meterTypeSegment.Frame.Width, 35)); selectionLabel.TextColor = UIColor.White; selectionLabel.Text = labelText; View.AddSubview(selectionLabel); infoLabel = new UILabel(new CGRect(0, View.Frame.Y + NavigationController.NavigationBar.Frame.Size.Height + 13, View.Frame.Width, 35)); infoLabel.TextColor = UIColor.White; infoLabel.Text = ""; infoLabel.TextAlignment = UITextAlignment.Center; View.AddSubview(infoLabel); UpdateInfoLabel(anylineEnergyView.ScanMode); } }