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); } }
private void HandleSegmentChange(object sender, EventArgs e) { var uiSegmentedControl = sender as UISegmentedControl; if (uiSegmentedControl != null) { var selectedSegmentId = uiSegmentedControl.SelectedSegment; var scanMode = _segmentItems.ElementAt((int)selectedSegmentId).Value; Console.WriteLine("Scanmode: {0}", scanMode); _error = null; _anylineEnergyView.SetScanMode(scanMode, out _error); if (_error != null) { (_alert = new UIAlertView("Error", _error.DebugDescription, (IUIAlertViewDelegate)null, "OK", null)).Show(); } } }
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); } }