在我的项目中,我想在导航栏中添加徽标。在android中使用自定义渲染器我已将徽标放置在导航栏中。但我不知道如何在ios xamarin表格中全局设置导航栏中的徽标。任何人都建议如何解决这个问题。
我试过这样,
NavigationPage.SetTilteIcon(this, "icon.png");
//但图片不显示
答案 0 :(得分:0)
您可以尝试将图标设置为:
Application.Current.MainPage = new NavigationPage(new FirstPageName() { Icon="icon.png"});
导航到另一个页面时,您可以将其写为:
this.Navigation.PushAsync(new SecondPageName() { Icon="icon.png"});
确保iOS项目文件夹中有图标图像。
答案 1 :(得分:0)
您可以为单个页面尝试自定义渲染器。但我们无法在全球范围内设置它。因为在iOS中每个ViewController都有一个NavigationItem,我们应该在需要时设置它。
以下是有关如何在页面渲染器中设置NavigationItem的一些代码:
public override void ViewWillAppear(bool animated)
{
base.ViewWillAppear(animated);
UIView leftView = new UIView(new CGRect(0, 0, 100, 40));
UIImageView imgView = new UIImageView(UIImage.FromBundle("icon.png"));
imgView.Frame = new CGRect(0, 5, 30, 30);
leftView.AddSubview(imgView);
UILabel label = new UILabel(new CGRect(30, 10, 70, 20));
label.Text = "page Title";
leftView.AddSubview(label);
//add event
UITapGestureRecognizer tap = new UITapGestureRecognizer((sender) =>
{
});
leftView.AddGestureRecognizer(tap);
leftItem = new UIBarButtonItem(leftView);
NavigationController.TopViewController.NavigationItem.SetLeftBarButtonItem(leftItem, true);
}
请注意,将此图片源放在iOS的项目中。
此外,如果您确实想在每个页面中显示此图标图像。尝试创建一个基页并为其构建此渲染器。然后让你的页面继承它。