iOS 11导航栏自定义后退按钮问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 11导航栏自定义后退按钮问题相关的知识,希望对你有一定的参考价值。

在我以前的应用程序中,我想要使用ios 11功能进行更新。所以我现在使用下面的代码

NavigationItem.SetHidesBackButton(false, false);

var negativeSpacae = new UIBarButtonItem(UIBarButtonSystemItem.FixedSpace);

UIButton button = new UIButton(new RectangleF(0, 0, 30, 30));
button.SetImage(UIImage.FromFile("backbutton"), UIControlState.Normal);
button.TintColor = UIColor.White;
button.BackgroundColor = UIColor.Red;

var widthconstraint = button.WidthAnchor.ConstraintEqualTo(27);
var heightconstraint = button.HeightAnchor.ConstraintEqualTo(20);

widthconstraint.Active = true;
heightconstraint.Active = true;

UIBarButtonItem[] bArray = {
                negativeSpacae, new UIBarButtonItem (button)
                };
NavigationItem.SetLeftBarButtonItems(bArray, true);

button.TouchUpInside += (sender, e) =>
{
   this.NavigationController.PopViewController(true);
};
if (UIDevice.CurrentDevice.CheckSystemVersion(11, 0))
{
   ViewRespectsSystemMinimumLayoutMargins = false;
   View.LayoutMargins = UIEdgeInsets.Zero;
}

它显示在输出下方:

enter image description here

在此输出中,按钮图像是拉伸的,并且显示的尺寸更合适。

我期待的是我的按钮图像是左侧没有拉伸。

任何帮助将不胜感激。

答案

在此输出中,按钮图像是拉伸的,并且显示的尺寸更合适。

原因:图像尺寸(宽*高)比按钮尺寸大。您可以检查应用程序文件夹中的图像文件,它应该大于27 * 20。

解决方案:button.ImageView.ContentMode = UIViewContentMode.ScaleAspectFit;

以上是关于iOS 11导航栏自定义后退按钮问题的主要内容,如果未能解决你的问题,请参考以下文章

使用导航控制器按下后退按钮后如何防止前一个片段显示?

如何减少iOS导航栏自定义视图的左右间隙

导航抽屉,处理后退按钮以转到以前的片段?

Android导航组件后退按钮不起作用

无法执行单击导航栏自定义按钮

如何通过后退按钮(箭头)将活动导航到片段?