Xamarin Forms iOS TitleBarTextColor 没有改变

凯文席尔瓦

到目前为止,为了更改 TitleBarTextColor,我尝试了很多,我的代码现在确实更改了后退按钮的颜色和屏幕顶部的区域,但是标题!

在我的 AppDelegate FinishedLaunching 函数中(在 Forms.Init() 之后和 LoadApplication() 之前):

UINavigationBar.Appearance.SetTitleTextAttributes(new UITextAttributes
{
    TextColor = UIColor.White
});

在我的视图模型中:

(App.Current.MainPage as NavigationPage).BarBackgroundColor = Color.FromHex("#990000");
(App.Current.MainPage as NavigationPage).BarTextColor = Color.White;

这就是我在页面(不是所有页面)之间导航的方式:

await _navigationService.NavigateAsync(new Uri("http://wwww.x.com/NavigationPage/TabbedNavigationPage?selectedTab=XPage/Document", UriKind.Absolute));

我什至尝试在 Prism 导航之后调用 ViewModel 代码,但它不起作用......我是一个初学者,并没有完全理解 Prism 和/或 Xamarin Forms。

[编辑] -> 我还尝试创建一个新类并从 继承它NavigationPageBarTextColor在其构造函数中设置并在导航中使用该类,如下所示:await _navigationService.NavigateAsync(new Uri("http://wwww.x.com/NEWCLASSCREATED/TabbedNavigationPage?selectedTab=XPage/Document", UriKind.Absolute));但是,如您所知,它仍然无法正常工作。

这是一张图片;)

imageToSeeThatImNotLying

谢谢您的支持!

凯文席尔瓦

所以我最终设法解决了这个问题......

我必须做的是创建一个自定义,Content Page因为所有其他解决方案都不起作用。所以我只在我的 iOS 项目中创建了这个自定义渲染器:

[assembly: ExportRenderer(typeof(ContentPage), typeof(CustomContentPageRenderer))]
namespace TestProject.iOS.Bll.Utils.Renderers
{
    public class CustomContentPageRenderer : PageRenderer
    {
        public override void DidMoveToParentViewController(UIViewController parent)
        {
            base.WillMoveToParentViewController(parent);

            var titleView = new UITextView();
            var page = this.Element as ContentPage;

            try
            {
                if (!string.IsNullOrEmpty(page.Title))
                {
                    titleView.Text = page.Title;
                    titleView.TextColor = UIColor.White;
                    titleView.Font = UIFont.SystemFontOfSize(17, UIFontWeight.Regular);

                    var bgColor = page.BackgroundColor;
                    titleView.BackgroundColor = UIColor.FromRGBA((int)bgColor.R, (int)bgColor.G, (int)bgColor.B, 0);
                    parent.NavigationItem.TitleView = titleView;
                    parent.NavigationItem.TitleView.ContentMode = UIViewContentMode.ScaleAspectFit;
                }
            }
            catch (Exception e)
            {
            }
        }
    }
}

我还删除了之前放在我的AppDelegate文件和文件中的所有代码App.xaml.cs我留下了代码,ViewModels因为它将后退按钮更改为白色,并且我删除了NagivationPage之前创建的新类。

我将解释为什么我做了你在那里看到的一些事情:

要更改标题,我创建了一个UITextView()并将其设置为我NavigationItem.TitleView的父页面。我设置titleView.Text = page.Title;是因为我的原始页面已经有一个标题,所以我只是重复使用它。而且backgroundcolor我必须做所有这些,所以该backgroundcolor属性按我想要的方式工作。

而这个DidMoveToParentViewController功能正是为了它可以在NavigationAsyncPrism之前完成所有这些

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

没有Xamarin.Forms的Xamarin BeginInvokeOnMainThread

来自分类Dev

没有Xamarin.Forms的Xamarin BeginInvokeOnMainThread

来自分类Dev

Xamarin Forms iOS-具有多行选择的PickerView

来自分类Dev

Xamarin.Forms或Xamarin.Android/Xamarin.IOS

来自分类Dev

使用Xamarin.Forms 4.3.0.947036在Android和iOS上实现正常模式和暗模式,而没有闪烁

来自分类Dev

Xamarin.Forms iOS项目未加载

来自分类Dev

Xamarin.forms.ios上的“共享”按钮

来自分类Dev

无法构建Xamarin.Forms iOS项目

来自分类Dev

Xamarin Forms iOS错误的任务图标

来自分类Dev

Xamarin Forms iOS应用突然崩溃启动

来自分类Dev

每天在iOS的Xamarin Forms中重复提醒

来自分类Dev

Xamarin.Forms iOS编辑日历事件

来自分类Dev

Xamarin.Forms iOS mTouch 错误

来自分类Dev

Xamarin.Forms iOS 中的 DateTimePicker

来自分类Dev

Xamarin跨Android / iOS的通用Xamarin.Forms代码

来自分类Dev

在Xamarin.Forms中从Xamarin.iOS获取记录

来自分类Dev

Xamarin.Forms / Xamarin iOS 中 Akavache 中的可能错误

来自分类Dev

尝试在带有AVFoundation的Xamarin Forms iOS中实现视频录制时,AVCaptureFileOutputRecordingDelegate编译错误

来自分类Dev

Xamarin.Forms(iOS 项目):ListView 分隔符显示在所有屏幕中

来自分类Dev

如何将现有的Xamarin.iOS项目迁移到Xamarin.Forms代码中?

来自分类Dev

Xamarin iOS PrepareForSegue没有被调用

来自分类Dev

获取iOS内部存储内存信息Xamarin Forms iOS

来自分类Dev

Xamarin Forms没有为UITest设置StyleId

来自分类Dev

没有第3方库的xamarin.forms授权

来自分类Dev

Xamarin Forms没有为UITest设置StyleId

来自分类Dev

Xamarin Forms 平台特定的 SetBarSelectedItemColor 没有效果

来自分类Dev

Xamarin Forms 独立存储似乎没有保存整个文件

来自分类Dev

添加Xamarin Forms Labs后,无法解决程序集“ Xamarin.Forms.Platform.iOS”错误

来自分类Dev

添加Xamarin Forms Labs后,无法解决程序集“ Xamarin.Forms.Platform.iOS”错误

Related 相关文章

  1. 1

    没有Xamarin.Forms的Xamarin BeginInvokeOnMainThread

  2. 2

    没有Xamarin.Forms的Xamarin BeginInvokeOnMainThread

  3. 3

    Xamarin Forms iOS-具有多行选择的PickerView

  4. 4

    Xamarin.Forms或Xamarin.Android/Xamarin.IOS

  5. 5

    使用Xamarin.Forms 4.3.0.947036在Android和iOS上实现正常模式和暗模式,而没有闪烁

  6. 6

    Xamarin.Forms iOS项目未加载

  7. 7

    Xamarin.forms.ios上的“共享”按钮

  8. 8

    无法构建Xamarin.Forms iOS项目

  9. 9

    Xamarin Forms iOS错误的任务图标

  10. 10

    Xamarin Forms iOS应用突然崩溃启动

  11. 11

    每天在iOS的Xamarin Forms中重复提醒

  12. 12

    Xamarin.Forms iOS编辑日历事件

  13. 13

    Xamarin.Forms iOS mTouch 错误

  14. 14

    Xamarin.Forms iOS 中的 DateTimePicker

  15. 15

    Xamarin跨Android / iOS的通用Xamarin.Forms代码

  16. 16

    在Xamarin.Forms中从Xamarin.iOS获取记录

  17. 17

    Xamarin.Forms / Xamarin iOS 中 Akavache 中的可能错误

  18. 18

    尝试在带有AVFoundation的Xamarin Forms iOS中实现视频录制时,AVCaptureFileOutputRecordingDelegate编译错误

  19. 19

    Xamarin.Forms(iOS 项目):ListView 分隔符显示在所有屏幕中

  20. 20

    如何将现有的Xamarin.iOS项目迁移到Xamarin.Forms代码中?

  21. 21

    Xamarin iOS PrepareForSegue没有被调用

  22. 22

    获取iOS内部存储内存信息Xamarin Forms iOS

  23. 23

    Xamarin Forms没有为UITest设置StyleId

  24. 24

    没有第3方库的xamarin.forms授权

  25. 25

    Xamarin Forms没有为UITest设置StyleId

  26. 26

    Xamarin Forms 平台特定的 SetBarSelectedItemColor 没有效果

  27. 27

    Xamarin Forms 独立存储似乎没有保存整个文件

  28. 28

    添加Xamarin Forms Labs后,无法解决程序集“ Xamarin.Forms.Platform.iOS”错误

  29. 29

    添加Xamarin Forms Labs后,无法解决程序集“ Xamarin.Forms.Platform.iOS”错误

热门标签

归档