private void ResetConstraints() { if (trackedConstraints != null) { View.RemoveConstraints(trackedConstraints); trackedConstraints = null; } var keyboardVisible = keyboardHeight >= 1f; trackedConstraints = new FluentLayout[] { moodLabel.AtTopOf(View, keyboardVisible ? 20f : 70f), moodLabel.AtLeftOf(View, 5f), moodLabel.AtRightOf(View, 5f), moodLabel.Height().EqualTo(40f), neutralMoodButton.Below(moodLabel, 5f), neutralMoodButton.WithSameCenterX(View), positiveMoodSeparatorView.ToLeftOf(neutralMoodButton, 30f), positiveMoodSeparatorView.WithSameCenterY(neutralMoodButton), positiveMoodSeparatorView.Height().EqualTo(15f), positiveMoodSeparatorView.Width().EqualTo(1f), positiveMoodButton.ToLeftOf(positiveMoodSeparatorView, 30f), positiveMoodButton.WithSameCenterY(neutralMoodButton), negativeMoodSeparatorView.ToRightOf(neutralMoodButton, 30f), negativeMoodSeparatorView.WithSameCenterY(neutralMoodButton), negativeMoodSeparatorView.Height().EqualTo(15f), negativeMoodSeparatorView.Width().EqualTo(1f), negativeMoodButton.ToRightOf(negativeMoodSeparatorView, 30f), negativeMoodButton.WithSameCenterY(neutralMoodButton), messageTopBorderView.Below(neutralMoodButton, 15f), messageTopBorderView.AtLeftOf(View), messageTopBorderView.AtRightOf(View), messageTopBorderView.Height().EqualTo(1f), messageTextView.Below(messageTopBorderView), messageTextView.AtLeftOf(View), messageTextView.AtRightOf(View), messageBottomBorderView.Below(messageTextView), messageBottomBorderView.AtLeftOf(View), messageBottomBorderView.AtRightOf(View), messageBottomBorderView.Height().EqualTo(1f), sendButton.Below(messageBottomBorderView, 5f), sendButton.AtLeftOf(View), sendButton.AtRightOf(View), sendButton.AtBottomOf(View, (keyboardVisible ? keyboardHeight : 0f) + 5f), sendButton.Height().EqualTo(60f), null }.ToLayoutConstraints(); View.AddConstraints(trackedConstraints); }
public override void ViewDidLoad() { base.ViewDidLoad(); Title = _toDoId == 0 ? NSBundle.MainBundle.GetLocalizedString(ConstantsHelper.NewToDo, ConstantsHelper.NewToDo) : NSBundle.MainBundle.GetLocalizedString(ConstantsHelper.EditToDo, ConstantsHelper.EditToDo); View.BackgroundColor = UIColor.White; var addButton = new UIBarButtonItem(UIBarButtonSystemItem.Done, SaveChanges) { AccessibilityLabel = ConstantsHelper.ConfirmButtonAccessibilityLabel }; NavigationItem.RightBarButtonItem = addButton; _selectedDate = NSDate.Now; _dateLabel = new UILabel(); _dateLabel.Text = "Date:"; _dateLabel.Font = UIFont.SystemFontOfSize(16); _dateLabel.TranslatesAutoresizingMaskIntoConstraints = false; _currentDateField = new UITextField(); _currentDateField.Layer.BorderColor = UIColor.LightGray.CGColor; _currentDateField.Layer.BorderWidth = 0.5f; _currentDateField.Layer.CornerRadius = 5f; _currentDateField.UserInteractionEnabled = true; _currentDateField.TextAlignment = UITextAlignment.Center; var dateFormatter = new NSDateFormatter { DateFormat = "dd/MM/yyyy" }; _currentDateField.Text = dateFormatter.StringFor(_selectedDate); _currentDateField.Font = UIFont.SystemFontOfSize(16); _currentDateField.TranslatesAutoresizingMaskIntoConstraints = false; _timeLabel = new UILabel(); _timeLabel.Text = "Time:"; _timeLabel.Font = UIFont.SystemFontOfSize(16); _timeLabel.TranslatesAutoresizingMaskIntoConstraints = false; var timeFormatter = new NSDateFormatter { DateFormat = "HH:mm" }; _currentTimeField = new UITextField(); _currentTimeField.Layer.BorderColor = UIColor.LightGray.CGColor; _currentTimeField.Layer.BorderWidth = 0.5f; _currentTimeField.Layer.CornerRadius = 5f; _currentTimeField.UserInteractionEnabled = true; _currentTimeField.TextAlignment = UITextAlignment.Center; _currentTimeField.Text = timeFormatter.StringFor(_selectedDate); _currentTimeField.Font = UIFont.SystemFontOfSize(16); _currentTimeField.TranslatesAutoresizingMaskIntoConstraints = false; _statusLabel = new UILabel(); _statusLabel.Text = "Status:"; _statusLabel.Font = UIFont.SystemFontOfSize(16); _statusLabel.TranslatesAutoresizingMaskIntoConstraints = false; _statusField = new UITextField(); _statusField.Layer.BorderColor = UIColor.LightGray.CGColor; _statusField.Layer.BorderWidth = 0.5f; _statusField.Layer.CornerRadius = 5f; _statusField.UserInteractionEnabled = true; _statusField.TextAlignment = UITextAlignment.Center; _statusField.Text = "Active"; _statusField.TranslatesAutoresizingMaskIntoConstraints = false; _descriptionLabel = new UILabel(); _descriptionLabel.Text = "Description:"; _descriptionLabel.Font = UIFont.SystemFontOfSize(16); _descriptionLabel.TranslatesAutoresizingMaskIntoConstraints = false; _descriptionEditor = new UITextView(); _descriptionEditor.Text = "Test to-do"; _descriptionEditor.Font = UIFont.SystemFontOfSize(16); _descriptionEditor.TranslatesAutoresizingMaskIntoConstraints = false; _statusGestureRecognizer = new UITapGestureRecognizer(async() => { await ShowStatusPopup(); }) { NumberOfTapsRequired = 1 }; _currentDateGestureRecognizer = new UITapGestureRecognizer(async() => { await ShowDatePopup(); }) { NumberOfTapsRequired = 1 }; _currentTimeGestureRecognizer = new UITapGestureRecognizer(async() => { await ShowTimePopup(); }) { NumberOfTapsRequired = 1 }; View.AddSubviews(_dateLabel, _currentDateField, _timeLabel, _currentTimeField, _statusLabel, _statusField, _descriptionLabel, _descriptionEditor); View.AddConstraints(_dateLabel.AtLeftOf(View, 10f), _dateLabel.AtTopOf(View, 80f), _dateLabel.Width().EqualTo(100f), _dateLabel.Height().EqualTo(30f), _currentDateField.WithSameCenterY(_dateLabel), _currentDateField.ToRightOf(_dateLabel), _currentDateField.Width().EqualTo(200f), _currentDateField.Height().EqualTo(30f), _timeLabel.Below(_dateLabel, 10f), _timeLabel.WithSameLeft(_dateLabel), _timeLabel.Width().EqualTo(100f), _timeLabel.Height().EqualTo(30f), _currentTimeField.WithSameCenterY(_timeLabel), _currentTimeField.ToRightOf(_timeLabel), _currentTimeField.Width().EqualTo(200f), _currentTimeField.Height().EqualTo(30f), _statusLabel.Below(_timeLabel, 10f), _statusLabel.WithSameLeft(_timeLabel), _statusLabel.Width().EqualTo(100f), _statusLabel.Height().EqualTo(30f), _statusField.WithSameCenterY(_statusLabel), _statusField.ToRightOf(_statusLabel), _statusField.Width().EqualTo(200f), _statusField.Height().EqualTo(30f), _descriptionLabel.Below(_statusLabel, 10f), _descriptionLabel.WithSameLeft(_statusLabel), _descriptionLabel.Width().EqualTo(100f), _descriptionLabel.Height().EqualTo(30f), _descriptionEditor.Below(_descriptionLabel, 10f), _descriptionEditor.WithSameLeft(_descriptionLabel), _descriptionEditor.Width().EqualTo(View.Bounds.Width - 20f), _descriptionEditor.Height().EqualTo(500f)); }
public override void ViewDidLoad() { var addButton = new UIBarButtonItem(UIBarButtonSystemItem.Done, SaveChanges) { AccessibilityLabel = ConstantsHelper.ConfirmButtonAccessibilityLabel }; View.BackgroundColor = UIColor.White; Title = NSBundle.MainBundle.GetLocalizedString(ConstantsHelper.NewNote, ConstantsHelper.NewNote); NavigationItem.RightBarButtonItem = addButton; _noteDescriptionHintLabel = new UILabel { Text = ConstantsHelper.Note, TextAlignment = UITextAlignment.Left, TextColor = UIColor.DarkGray, Font = UIFont.SystemFontOfSize(14), TranslatesAutoresizingMaskIntoConstraints = false }; View.AddSubview(_noteDescriptionHintLabel); View.AddConstraints(_noteDescriptionHintLabel.AtLeftOf(View, 10f), _noteDescriptionHintLabel.AtTopOf(View, 80f), _noteDescriptionHintLabel.Width().EqualTo(100f), _noteDescriptionHintLabel.Height().EqualTo(20f)); _noteDescriptionTextView = new UITextView { Text = ConstantsHelper.NewNote, Font = UIFont.SystemFontOfSize(16), TranslatesAutoresizingMaskIntoConstraints = false }; View.AddSubview(_noteDescriptionTextView); View.AddConstraints( _noteDescriptionTextView.WithSameLeft(_noteDescriptionHintLabel), _noteDescriptionTextView.Below(_noteDescriptionHintLabel, 10f), _noteDescriptionTextView.WithSameWidth(View), _noteDescriptionTextView.Height().EqualTo(200)); ConfigureView(); _galleryHintLabel = new UILabel { Text = ConstantsHelper.Gallery, TextAlignment = UITextAlignment.Left, TextColor = UIColor.DarkGray, Font = UIFont.SystemFontOfSize(14), TranslatesAutoresizingMaskIntoConstraints = false }; View.AddSubview(_galleryHintLabel); View.AddConstraints(_galleryHintLabel.AtLeftOf(View, 10f), _galleryHintLabel.Below(_noteDescriptionTextView, 10f), _galleryHintLabel.Width().EqualTo(100f), _galleryHintLabel.Height().EqualTo(20f)); var collectionView = new UICollectionView(CGRect.Empty, new GalleryCollectionViewLayout()) { TranslatesAutoresizingMaskIntoConstraints = false }; View.AddSubview(collectionView); collectionView.BackgroundColor = UIColor.White; collectionView.AlwaysBounceVertical = true; collectionView.Bounces = true; collectionView.RegisterClassForCell(typeof(GalleryViewCell), nameof(GalleryViewCell)); var galleryItems = new List <GalleryItemModel> { new GalleryItemModel { ImagePath = "https://ak5.picdn.net/shutterstock/videos/3775625/thumb/1.jpg?i10c=img.resize(height:160)" }, new GalleryItemModel { ImagePath = "https://ak5.picdn.net/shutterstock/videos/3775625/thumb/1.jpg?i10c=img.resize(height:160)" }, new GalleryItemModel { ImagePath = "https://ak5.picdn.net/shutterstock/videos/3775625/thumb/1.jpg?i10c=img.resize(height:160)" }, new GalleryItemModel { ImagePath = "https://ak5.picdn.net/shutterstock/videos/3775625/thumb/1.jpg?i10c=img.resize(height:160)" }, new GalleryItemModel { ImagePath = "https://ak5.picdn.net/shutterstock/videos/3775625/thumb/1.jpg?i10c=img.resize(height:160)" }, new GalleryItemModel { ImagePath = "https://ak5.picdn.net/shutterstock/videos/3775625/thumb/1.jpg?i10c=img.resize(height:160)" }, new GalleryItemModel { ImagePath = "https://ak5.picdn.net/shutterstock/videos/3775625/thumb/1.jpg?i10c=img.resize(height:160)" }, new GalleryItemModel { ImagePath = "https://ak5.picdn.net/shutterstock/videos/3775625/thumb/1.jpg?i10c=img.resize(height:160)" }, new GalleryItemModel { ImagePath = "https://ak5.picdn.net/shutterstock/videos/3775625/thumb/1.jpg?i10c=img.resize(height:160)" }, new GalleryItemModel { ImagePath = "https://ak5.picdn.net/shutterstock/videos/3775625/thumb/1.jpg?i10c=img.resize(height:160)" } }; collectionView.Source = new GalleryCollectionViewSource(galleryItems, this); collectionView.Delegate = new GalleryCollectionViewDelegate(galleryItems, this, new UIEdgeInsets(5, 5, 5, 5)); collectionView.ReloadData(); View.AddConstraints(collectionView.Below(_galleryHintLabel, 30f), collectionView.WithSameWidth(View), collectionView.Below(_galleryHintLabel, 5f), collectionView.AtBottomOf(View, 70f)); var bottomBar = new UIView { BackgroundColor = UIColor.FromRGB(50, 50, 50), TranslatesAutoresizingMaskIntoConstraints = false, }; _pickImage = new UIImageView(UIImage.FromBundle(ConstantsHelper.AddIcon)) { ContentMode = UIViewContentMode.Center, TranslatesAutoresizingMaskIntoConstraints = false }; _cameraImage = new UIImageView(UIImage.FromBundle(ConstantsHelper.CameraIcon)) { ContentMode = UIViewContentMode.Center, TranslatesAutoresizingMaskIntoConstraints = false }; _videoImage = new UIImageView(UIImage.FromBundle(ConstantsHelper.VideoIcon)) { ContentMode = UIViewContentMode.Center, TranslatesAutoresizingMaskIntoConstraints = false }; bottomBar.AddSubviews(_pickImage, _cameraImage, _videoImage); bottomBar.AddConstraints(_pickImage.Height().EqualTo(70f), _pickImage.AtLeftOf(bottomBar), _pickImage.Width().EqualTo(70f), _pickImage.WithSameCenterY(bottomBar), _cameraImage.ToRightOf(_pickImage), _cameraImage.Height().EqualTo(70f), _cameraImage.Width().EqualTo(70f), _cameraImage.WithSameCenterY(bottomBar), _videoImage.ToRightOf(_cameraImage), _videoImage.Height().EqualTo(70f), _videoImage.Width().EqualTo(70f), _videoImage.WithSameCenterY(bottomBar)); View.AddSubview(bottomBar); View.AddConstraints(bottomBar.WithSameWidth(View), bottomBar.Height().EqualTo(70f), bottomBar.AtBottomOf(View)); }