Merge branch '4.5.0' into 4.6.0
This commit is contained in:
Коммит
c8b99fb391
|
@ -138,6 +138,7 @@
|
||||||
<Compile Include="CustomRenderers\RoundedLabelRenderer.cs" />
|
<Compile Include="CustomRenderers\RoundedLabelRenderer.cs" />
|
||||||
<Compile Include="ApiLabelRenderer.cs" />
|
<Compile Include="ApiLabelRenderer.cs" />
|
||||||
<Compile Include="CustomRenderers\CustomSearchBarRenderer.cs" />
|
<Compile Include="CustomRenderers\CustomSearchBarRenderer.cs" />
|
||||||
|
<Compile Include="_9767CustomRenderer.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\Xamarin.Forms.Controls\Xamarin.Forms.Controls.csproj">
|
<ProjectReference Include="..\Xamarin.Forms.Controls\Xamarin.Forms.Controls.csproj">
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
using CoreAnimation;
|
||||||
|
using CoreGraphics;
|
||||||
|
using UIKit;
|
||||||
|
using Xamarin.Forms;
|
||||||
|
using Xamarin.Forms.ControlGallery.iOS;
|
||||||
|
using Xamarin.Forms.Controls.Issues;
|
||||||
|
using Xamarin.Forms.Platform.iOS;
|
||||||
|
|
||||||
|
[assembly: ExportRenderer(typeof(Issue9767NavigationPage), typeof(_9767CustomRenderer))]
|
||||||
|
namespace Xamarin.Forms.ControlGallery.iOS
|
||||||
|
{
|
||||||
|
public class _9767CustomRenderer : NavigationRenderer
|
||||||
|
{
|
||||||
|
public _9767CustomRenderer() : base()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void ViewWillAppear(bool animated)
|
||||||
|
{
|
||||||
|
base.ViewWillAppear(animated);
|
||||||
|
|
||||||
|
UpdateColors();
|
||||||
|
UpdateGradientView();
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateColors()
|
||||||
|
{
|
||||||
|
UINavigationBar.Appearance.BarTintColor = UIColor.FromPatternImage(UIImage.FromFile("coffee.png"));
|
||||||
|
UINavigationBar.Appearance.TintColor = UIColor.Yellow;
|
||||||
|
UINavigationBar.Appearance.SetTitleTextAttributes(new UITextAttributes { TextColor = UIColor.Blue });
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateGradientView()
|
||||||
|
{
|
||||||
|
var gradientLayer = new CAGradientLayer
|
||||||
|
{
|
||||||
|
Bounds = NavigationBar.Bounds,
|
||||||
|
Colors = new CGColor[] { Color.Blue.ToCGColor(), Color.Purple.ToCGColor() },
|
||||||
|
EndPoint = new CGPoint(0.0, 0.5),
|
||||||
|
StartPoint = new CGPoint(1.0, 0.5)
|
||||||
|
};
|
||||||
|
UIGraphics.BeginImageContext(gradientLayer.Bounds.Size);
|
||||||
|
gradientLayer.RenderInContext(UIGraphics.GetCurrentContext());
|
||||||
|
UIImage image = UIGraphics.GetImageFromCurrentImageContext();
|
||||||
|
UIGraphics.EndImageContext();
|
||||||
|
NavigationBar.SetBackgroundImage(image, UIBarMetrics.Default);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -68,10 +68,21 @@ namespace Xamarin.Forms.Controls.Issues
|
||||||
BarTextColor = Color.Default;
|
BarTextColor = Color.Default;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var navigateButton = new Button
|
||||||
|
{
|
||||||
|
Text = "Navigate"
|
||||||
|
};
|
||||||
|
|
||||||
|
navigateButton.Clicked += (sender, args) =>
|
||||||
|
{
|
||||||
|
Navigation.PushAsync(new Issue9767NavigationPage(new Issue9767()));
|
||||||
|
};
|
||||||
|
|
||||||
layout.Children.Add(updateBarBackgroundButton);
|
layout.Children.Add(updateBarBackgroundButton);
|
||||||
layout.Children.Add(updateBarTextButton);
|
layout.Children.Add(updateBarTextButton);
|
||||||
layout.Children.Add(resetBarBackgroundButton);
|
layout.Children.Add(resetBarBackgroundButton);
|
||||||
layout.Children.Add(resetBarTextButton);
|
layout.Children.Add(resetBarTextButton);
|
||||||
|
layout.Children.Add(navigateButton);
|
||||||
|
|
||||||
page.Content = layout;
|
page.Content = layout;
|
||||||
|
|
||||||
|
@ -80,7 +91,7 @@ namespace Xamarin.Forms.Controls.Issues
|
||||||
|
|
||||||
protected override void Init()
|
protected override void Init()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Color GetRandomColor()
|
Color GetRandomColor()
|
||||||
|
@ -102,4 +113,18 @@ namespace Xamarin.Forms.Controls.Issues
|
||||||
return (Color)result;
|
return (Color)result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
[Preserve(AllMembers = true)]
|
||||||
|
public class Issue9767NavigationPage : NavigationPage
|
||||||
|
{
|
||||||
|
public Issue9767NavigationPage()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public Issue9767NavigationPage(Page root) : base(root)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -148,6 +148,14 @@ namespace Xamarin.Forms.Platform.iOS
|
||||||
base.ViewWillAppear(animated);
|
base.ViewWillAppear(animated);
|
||||||
|
|
||||||
SetStatusBarStyle();
|
SetStatusBarStyle();
|
||||||
|
|
||||||
|
if (Forms.IsiOS13OrNewer)
|
||||||
|
{
|
||||||
|
UpdateTint();
|
||||||
|
UpdateBarBackgroundColor();
|
||||||
|
UpdateBarTextColor();
|
||||||
|
UpdateHideNavigationBarSeparator();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ViewDidDisappear(bool animated)
|
public override void ViewDidDisappear(bool animated)
|
||||||
|
@ -226,11 +234,16 @@ namespace Xamarin.Forms.Platform.iOS
|
||||||
navPage.RemovePageRequested += OnRemovedPageRequested;
|
navPage.RemovePageRequested += OnRemovedPageRequested;
|
||||||
navPage.InsertPageBeforeRequested += OnInsertPageBeforeRequested;
|
navPage.InsertPageBeforeRequested += OnInsertPageBeforeRequested;
|
||||||
|
|
||||||
UpdateTint();
|
if (!Forms.IsiOS13OrNewer)
|
||||||
UpdateBarBackgroundColor();
|
{
|
||||||
UpdateBarTextColor();
|
UpdateTint();
|
||||||
|
UpdateBarBackgroundColor();
|
||||||
|
UpdateBarTextColor();
|
||||||
|
UpdateHideNavigationBarSeparator();
|
||||||
|
}
|
||||||
|
|
||||||
UpdateUseLargeTitles();
|
UpdateUseLargeTitles();
|
||||||
UpdateHideNavigationBarSeparator();
|
|
||||||
if (Forms.RespondsToSetNeedsUpdateOfHomeIndicatorAutoHidden)
|
if (Forms.RespondsToSetNeedsUpdateOfHomeIndicatorAutoHidden)
|
||||||
SetNeedsUpdateOfHomeIndicatorAutoHidden();
|
SetNeedsUpdateOfHomeIndicatorAutoHidden();
|
||||||
|
|
||||||
|
@ -678,6 +691,9 @@ namespace Xamarin.Forms.Platform.iOS
|
||||||
NavigationBar.CompactAppearance = navigationBarAppearance;
|
NavigationBar.CompactAppearance = navigationBarAppearance;
|
||||||
NavigationBar.StandardAppearance = navigationBarAppearance;
|
NavigationBar.StandardAppearance = navigationBarAppearance;
|
||||||
NavigationBar.ScrollEdgeAppearance = navigationBarAppearance;
|
NavigationBar.ScrollEdgeAppearance = navigationBarAppearance;
|
||||||
|
|
||||||
|
var parentingViewController = (ParentingViewController)ViewControllers.Last();
|
||||||
|
parentingViewController?.UpdateNavigationBarBackgroundImage();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
|
@ -1081,6 +1097,7 @@ namespace Xamarin.Forms.Platform.iOS
|
||||||
|
|
||||||
public override void ViewWillAppear(bool animated)
|
public override void ViewWillAppear(bool animated)
|
||||||
{
|
{
|
||||||
|
UpdateNavigationBarBackgroundImage();
|
||||||
UpdateNavigationBarVisibility(animated);
|
UpdateNavigationBarVisibility(animated);
|
||||||
|
|
||||||
NavigationRenderer n;
|
NavigationRenderer n;
|
||||||
|
@ -1155,6 +1172,22 @@ namespace Xamarin.Forms.Platform.iOS
|
||||||
UpdateIconColor();
|
UpdateIconColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal void UpdateNavigationBarBackgroundImage()
|
||||||
|
{
|
||||||
|
if (!Forms.IsiOS13OrNewer)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!_navigation.TryGetTarget(out NavigationRenderer navigationRenderer))
|
||||||
|
return;
|
||||||
|
|
||||||
|
#if __XCODE11__
|
||||||
|
var backgroundImage = navigationRenderer.NavigationBar.GetBackgroundImage(UIBarMetrics.Default);
|
||||||
|
|
||||||
|
navigationRenderer.NavigationBar.CompactAppearance.BackgroundImage = backgroundImage;
|
||||||
|
navigationRenderer.NavigationBar.StandardAppearance.BackgroundImage = backgroundImage;
|
||||||
|
navigationRenderer.NavigationBar.ScrollEdgeAppearance.BackgroundImage = backgroundImage;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
internal void UpdateLeftBarButtonItem(Page pageBeingRemoved = null)
|
internal void UpdateLeftBarButtonItem(Page pageBeingRemoved = null)
|
||||||
{
|
{
|
||||||
|
|
Загрузка…
Ссылка в новой задаче