UINavigationBar水平渐变

时间:2014-02-04 13:04:11

标签: ios xamarin.ios uinavigationbar

我正在尝试在UINavigationBar上设置水平渐变。到目前为止,我已经得到它,以便在纵向模式下,使用以下代码正确显示渐变:

static internal class UINavigationControllerExtensions
{
    public static void SetBarDefaults(this UINavigationController controller)
    {
        controller.NavigationBar.BarTintColor = UIColor.FromPatternImage(UIImage.FromFile(IosConstants.ApplicationGradient));

        //Other setup stuff
    }
}

在我们的第一个视图中调用此扩展方法,并为所有纵向视图正确设置它。

旋转设备时出现问题。当发生这种情况时,渐变在NavigationBar的宽度处被切断,就好像它处于纵向模式,然后再次开始,导致一条明显不同的线。

我尝试过在视图控制器上等待旋转事件的实验,然后重新调用此方法尝试重新绘制渐变,但显然这也不起作用。

有谁知道如何在旋转时正确调整大小?

1 个答案:

答案 0 :(得分:1)

您可以使用:

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"gardientImage"] forBarMetrics:UIBarMetricsDefault];

for ios 7导航栏高度为64px