public void Load(FoodMarker marker) { nfloat imageHeight = 130; var imageMeta = marker.FoodMarkerPhotos.Where(p => p.ImageRank == 1).First(); if (marker.FoodMarkerPhotos.Where(p => p.ImageRank == 2).Any()) { imageMeta = marker.FoodMarkerPhotos.Where(p => p.ImageRank == 2).First(); } UIImage uiImage; using (var url = new NSUrl(imageMeta.ImageUrl)) { using (var data = NSData.FromUrl(url)) { uiImage = UIImage.LoadFromData(data); } } _image.Image = uiImage; _image.Frame = new CGRect( 0, 5f, ControlProps.Width, imageHeight ); _image.ContentMode = UIViewContentMode.ScaleAspectFill; _image.Center = new CGPoint(ContainingView.Center.X, _image.Center.Y); _image.ClipsToBounds = true; _image.Layer.CornerRadius = 15f; Configuration.TintColor = UIColor.Yellow; var gallery = new AlbumViewController() { LazyDataSource = (view, size, mediaTypes) => new LocalFilesDataSource(view, size, mediaTypes) { ImagesPath = (new FoodMarkerImageDirectory()).GetDir() }, LazyDelegate = (view, source) => new LocalFilesDelegate(view, (LocalFilesDataSource)source) }; var gestureRec = new UITapGestureRecognizer(() => { _controller.PresentViewController(gallery, true, null); }); gestureRec.CancelsTouchesInView = false; _image.AddGestureRecognizer(gestureRec); _image.UserInteractionEnabled = true; View.Frame = new CGRect( 0, _parentContainer.View.Frame.GetMaxY(), ContainingView.Frame.Width, imageHeight + 10f ); }
public PostFoodMarkerController() : base("PostFoodMarkerController", null) { Configuration.TintColor = UIColor.Yellow; _chafuViewController = new ChafuViewController { HasVideo = false }; _albumViewController = new AlbumViewController { LazyDataSource = (view, size, mediaTypes) => new LocalFilesDataSource(view, size, mediaTypes) { ImagesPath = (new FoodMarkerPendingImageDirectory()).GetDir() }, LazyDelegate = (view, source) => new LocalFilesDelegate(view, (LocalFilesDataSource)source) }; _locationManager = new CLLocationManager(); _mediaPickerService = new MediaPickerService(); }
public override void ViewDidLoad() { base.ViewDidLoad(); Title = "Chafu"; var deleteAll = new UIBarButtonItem(UIBarButtonSystemItem.Trash) { TintColor = Configuration.BackgroundColor }; NavigationController.NavigationBar.BarTintColor = Configuration.TintColor; NavigationController.NavigationBar.TintColor = Configuration.BaseTintColor; NavigationItem.RightBarButtonItem = deleteAll; View.BackgroundColor = Configuration.BackgroundColor; Configuration.CropImage = true; var imageView = new UIImageView { BackgroundColor = UIColor.Black }; var urlLabel = new UILabel(); var pickerButton = new UIButton(UIButtonType.System) { BackgroundColor = Configuration.TintColor, TintColor = UIColor.Black }; pickerButton.SetTitle("Pick Image", UIControlState.Normal); var albumButton = new UIButton(UIButtonType.System) { BackgroundColor = Configuration.TintColor, TintColor = UIColor.Black }; albumButton.SetTitle("Show Album", UIControlState.Normal); var chafu = new ChafuViewController { HasVideo = true }; chafu.ImageSelected += (sender, image) => { DispatchQueue.MainQueue.DispatchAsync(() => { imageView.Image = image; }); CopyImageToLocalFolder(image); }; chafu.VideoSelected += (sender, videoUrl) => { urlLabel.Text = videoUrl.AbsoluteString; CopyVideoToLocalFolder(videoUrl); }; chafu.Closed += (sender, e) => { /* do stuff on closed */ }; pickerButton.TouchUpInside += (sender, args) => { NavigationController.PresentModalViewController(chafu, true); }; var albumViewController = new AlbumViewController { LazyDataSource = (view, size, mediaTypes) => new LocalFilesDataSource(view, size, mediaTypes) { ImagesPath = TempPath() }, LazyDelegate = (view, source) => new LocalFilesDelegate(view, (LocalFilesDataSource)source), ShowExtraButton = true, ShowDoneButton = false, ShowDeleteButton = true }; albumViewController.Extra += (sender, args) => { albumViewController.Dismiss(); NavigationController.PresentModalViewController(chafu, true); }; albumViewController.ImageSelected += (sender, image) => { imageView.Image = image; }; albumButton.TouchUpInside += (sender, args) => { // Test InitialSelectedImage by selecting random path albumViewController.InitialSelectedImagePath = GetRandomPath(); NavigationController.PresentModalViewController(albumViewController, true); }; deleteAll.Clicked += (sender, args) => { DeleteAllStuff(); ((LocalFilesDataSource)albumViewController.AlbumDataSource)?.UpdateImageSource(TempPath()); }; Add(imageView); Add(urlLabel); Add(pickerButton); Add(albumButton); View.SubviewsDoNotTranslateAutoresizingMaskIntoConstraints(); EdgesForExtendedLayout = UIRectEdge.None; View.AddConstraints( imageView.Width().EqualTo().HeightOf(imageView), imageView.AtTopOf(View, 5), imageView.AtLeftOf(View, 5), imageView.AtRightOf(View, 5), imageView.Above(urlLabel, 10), urlLabel.AtLeftOf(View, 5), urlLabel.AtRightOf(View, 5), urlLabel.Above(pickerButton, 10), pickerButton.AtLeftOf(View, 50), pickerButton.AtRightOf(View, 50), pickerButton.Height().EqualTo(50), pickerButton.Above(albumButton, 20), albumButton.AtLeftOf(View, 50), albumButton.AtRightOf(View, 50), albumButton.Height().EqualTo(50), albumButton.AtBottomOf(View, 10f) ); }