protected PrettyDialogViewController() { HeaderView = new ImageAndTitleHeaderView(); SlideUpTitle = new SlideUpTitleView(44f) { Offset = 100f }; NavigationItem.TitleView = SlideUpTitle; _backgroundHeaderView = new UIView(); }
protected PrettyDialogViewController() { _rootElement = new Lazy <RootElement>(() => new RootElement(TableView)); _backgroundHeaderView = new UIView(); _tableView = new Lazy <EnhancedTableView>(() => new EnhancedTableView(UITableViewStyle.Grouped)); HeaderView = new ImageAndTitleHeaderView(); SlideUpTitle = new SlideUpTitleView(44f) { Offset = 100f }; NavigationItem.TitleView = SlideUpTitle; }
protected BaseDialogViewController() : base(UITableViewStyle.Grouped) { SlideUpTitle = new SlideUpTitleView(44f) { Offset = 100f }; NavigationItem.TitleView = SlideUpTitle; HeaderView = new ImageAndTitleHeaderView(); _backgroundHeaderView = new UIView(); Appearing .Where(x => ToolbarItems != null && NavigationController != null) .Subscribe(x => NavigationController.SetToolbarHidden(false, x)); Disappearing .Where(x => ToolbarItems != null && NavigationController != null) .Subscribe(x => NavigationController.SetToolbarHidden(true, x)); Disappearing .Where(_ => NavigationController != null) .Subscribe(_ => NavigationController.NavigationBar.ShadowImage = null); }
public override void ViewDidLoad() { base.ViewDidLoad(); NavigationItem.TitleView = _slideUpTitle = new SlideUpTitleView(NavigationController.NavigationBar.Bounds.Height) { Text = Title }; _slideUpTitle.Offset = 100f; _web = new UIWebView(new CGRect(0, 0, View.Frame.Width, View.Frame.Height)); _web.BackgroundColor = UIColor.White; _web.Opaque = false; _web.AutoresizingMask = UIViewAutoresizing.All; _web.LoadFinished += (sender, e) => IsWebLoaded = true; _web.ShouldStartLoad = (w, r, x) => { if (x == UIWebViewNavigationType.LinkClicked && r.Url.Scheme.StartsWith("http", StringComparison.OrdinalIgnoreCase)) { ViewModel.GoToUrlCommand.ExecuteIfCan(r.Url.AbsoluteString); return(false); } return(true); }; _web.ScrollView.Scrolled += WebScrolled; Add(_web); _web.ScrollView.CreateTopBackground(UIColor.FromRGB(0x4e, 0x4b, 0xbe)); NavigationItem.RightBarButtonItem = new UIBarButtonItem(UIBarButtonSystemItem.Action, (s, e) => ShowMore()); NavigationItem.RightBarButtonItem.EnableIfExecutable(this.WhenAnyValue(x => x.ViewModel) .Where(x => x != null) .Select(x => x.WhenAnyValue(y => y.Repository)) .Switch().Select(x => x != null)); this.WhenAnyObservable(x => x.ViewModel.LoadCommand.IsExecuting) .Where(x => x) .Subscribe(_ => IsWebLoaded = false); this.WhenAnyValue(x => x.ViewModel.Repository) .Where(x => x != null) .Subscribe(x => { _web.LoadHtmlString(new ReadmeRazorView().GenerateString(), new NSUrl(x.HtmlUrl + "/raw/" + x.DefaultBranch + "/")); Title = x.Name; }); this.WhenAnyValue(x => x.ViewModel) .Where(x => x != null) .Select(x => x.WhenAnyValue(y => y.Liked)) .Switch() .Subscribe(x => { if (x == null) { DislikeButton.Image = Images.ThumbDown; LikeButton.Image = Images.ThumbUp; } else if (x.Value) { DislikeButton.Image = Images.ThumbDown; LikeButton.Image = Images.ThumbUpFilled; } else { DislikeButton.Image = Images.ThumbDownFilled; LikeButton.Image = Images.ThumbUp; } }); this.WhenAnyValue(y => y.ViewModel.Repository, y => y.IsWebLoaded) .Where(y => y.Item1 != null && y.Item2) .Subscribe(x => { var s = JsonConvert.SerializeObject(x.Item1); _web.EvaluateJavascript("setRepository(" + s + ")"); }); this.WhenAnyValue(y => y.ViewModel.ContributorCount, y => y.IsWebLoaded) .Where(y => y.Item1 != null && y.Item2) .Subscribe(x => { _web.EvaluateJavascript("setContrib(" + x.Item1.Value + ")"); }); this.WhenAnyValue(y => y.ViewModel.Readme, y => y.IsWebLoaded) .Where(y => y.Item2 && y.Item1 != null) .Subscribe(x => { var s = JsonConvert.SerializeObject(x.Item1); _web.EvaluateJavascript("setBody(" + s + ")"); }); ToolbarItems = new [] { new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace), DislikeButton, new UIBarButtonItem(UIBarButtonSystemItem.FixedSpace) { Width = 80 }, LikeButton, new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace), }; }