new void Dispose() { //un-register any event handlers here, if you have any //remove result view _drivingLicenseResultView?.RemoveFromSuperview(); _drivingLicenseResultView?.Dispose(); _drivingLicenseResultView = null; //we have to erase the scan view so that there are no dependencies for the viewcontroller left. _scanView?.RemoveFromSuperview(); _scanView?.Dispose(); _scanView = null; GC.Collect(GC.MaxGeneration); base.Dispose(); }
public override void ViewDidLoad() { base.ViewDidLoad(); // Initializing the Driving License module. CGRect 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); _scanView = new AnylineOCRModuleView(frame); // We'll define the OCR Config here: _ocrConfig = new ALOCRConfig(); string engTraineddata = NSBundle.MainBundle.PathForResource(@"Modules/OCR/eng_no_dict", @"traineddata"); string deuTraineddata = NSBundle.MainBundle.PathForResource(@"Modules/OCR/deu", @"traineddata"); _ocrConfig.Languages = new[] { engTraineddata, deuTraineddata }; _ocrConfig.CustomCmdFilePath = NSBundle.MainBundle.PathForResource(@"Modules/DrivingLicense/anyline_austrian_driving_license", @"ale"); // We tell the module to bootstrap itself with the license key and delegate. The delegate will later get called // by the module once we start receiving results. _error = null; _success = _scanView.SetupWithLicenseKey(_licenseKey, Self, _ocrConfig, out _error); // SetupWithLicenseKey:delegate:error returns true if everything went fine. In the case something wrong // we have to check the error object for the error message. if (!_success) { // Something went wrong. The error object contains the error description (Alert = new UIAlertView("Error", _error.DebugDescription, (IUIAlertViewDelegate)null, "OK", null)).Show(); } // We stop scanning manually _scanView.CancelOnResult = false; // We load the UI config for our DrivingLicense view from a .json file. string configFile = NSBundle.MainBundle.PathForResource(@"Modules/DrivingLicense/drivinglicense_capture_config", @"json"); _scanView.CurrentConfiguration = ALUIConfiguration.CutoutConfigurationFromJsonFile(configFile); // After setup is complete we add the module to the view of this view controller View.AddSubview(_scanView); /* * The following view will present the scanned values. Here we start listening for taps * to later dismiss the view. */ _drivingLicenseResultView = new DrivingLicenseResultOverlayView(new CGRect(0, 0, View.Frame.Width, View.Frame.Height)); //new CGRect(0, 0, View.Frame.Width, View.Frame.Width / 1.4)); _drivingLicenseResultView.AddGestureRecognizer(new UITapGestureRecognizer(this, new ObjCRuntime.Selector("ViewTapSelector:"))); _drivingLicenseResultView.Center = View.Center; _drivingLicenseResultView.Alpha = 0; View.AddSubview(_drivingLicenseResultView); }