UINavigationBar 自定义

为什么要自定义 UINavigationBar,为了不要显示系统的空间,按着自己的意愿来

一般一个应用程序中的UINavigationBar都是用的统一风格的,那么我们就在入口来中用类别的方法来给UINavigationBar设置样式

@interface UINavigationBar (CustomImage)

@end


@implementation UINavigationBar (CustomImage)

// 压缩图片

- (UIImage *) scaleImage:(UIImage *)image {

    UIGraphicsBeginImageContext(CGSizeMake(320,44));

    [image drawInRect:CGRectMake(0, 0, 320, 44)];

    UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return scaledImage;

}

//ios5之前的走这里

- (void)drawRect:(CGRect)rect {


    UIImage *image = [self scaleImage:[UIImage imageNamed:@"top_bg.png"]];

    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];

}

// ios5后走这里

- (void)didMoveToSuperview

{

    // 来判断版本

    if ([[UIDevice currentDevice].systemVersion floatValue]>=7.0) {

        if ([self respondsToSelector:@selector(setBackgroundImage:forBarPosition:barMetrics:)])

        {

            [self setBackgroundImage:[UIImage imageNamed:@"top_bg.png"] forBarPosition:UIBarPositionTop barMetrics:UIBarMetricsDefault];

        }

    }else{

        if ([self respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)])

        {

            [self setBackgroundImage:[self scaleImage:[UIImage imageNamed:@"top_bg.png"]] forBarMetrics:UIBarMetricsDefault];

        }

    }

}


@end

这样就完成了兼容IOS4以上的所有设备
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值