iOS开发 改变UINavigationController的UINavigationBar的高度和背景图片

1、改变高度

自定义UINavigationBar的新类别:

[cpp] view
plain
copy

  1. //UINavigationBar+BackgoundImage.h
  2. #import <Foundation/Foundation.h>
  3. @interface UINavigationBar (BackgoundImage)
  4. @end

在新类别的实现中,覆盖原有类的方法 - (void)drawRect:(CGRect)rect :

[cpp] view
plain
copy

  1. //UINavigationBar+BackgoundImage.m
  2. #import "UINavigationBar+BackgoundImage.h"
  3. @implementation UINavigationBar (BackgoundImage)
  4. - (void)layoutSubviews {
  5. CGRect barFrame = self.frame;
  6. barFrame.size.height = 100.0; //新的高度
  7. self.frame = barFrame;
  8. }
  9. //其实只需要覆盖该方法就行,把self.frame.size.height改成100.0就OK
  10. - (void)drawRect:(CGRect)rect {
  11. UIImage *image = [UIImage imageNamed:@"Logo.PNG"];
  12. [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
  13. }
  14. @end

至此可以发现工程中的NavigationBar的高度已经变化。

2、接下来改变背景图片,(参考http://stackoverflow.com/questions/8375092/xcode4-2-storyboard-navigation-controller-how-to-set-custom-image-for-uinavig):

在XXXAppDalegate.m中的委托方法:

[cpp] view
plain
copy

  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  2. {
  3. //......
  4. return YES;
  5. }

的"return YES"前加入代码:

[cpp] view
plain
copy

  1. [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"Logo.PNG"] forBarMetrics:UIBarMetricsDefault]; //this adds the image

成功。

在第1步中的高度可以直接取图片的高度,这样比较方便。

时间: 2024-10-13 04:08:58

iOS开发 改变UINavigationController的UINavigationBar的高度和背景图片的相关文章

ios开发:UINavigationController反方向滑动push

新建个UINavigationController的类别: #import "UINavigationController+CustomAnimation.h" @implementation UINavigationController (CustomAnimation) - (void)customPushViewController:(UIViewController *)viewController { viewController.view.frame = (CGRect){

iOS开发-检测用户截屏, 并获取所截图片

微信可以检测到用户截屏行为(Home + Power),并在稍后点击附加功能按钮时询问用户是否要发送刚才截屏的图片,这个用户体验非常好.于是乎, 我也想着实现这个功能. 在iOS7之前, 如果用户截屏,系统会自动取消屏幕上的所有 touch 事件,(使用 touchesCancelled:withEvent: 这个方法)那么我们就可以检测这个方法的调用,然后加载本地最新图片再加以判断来实现我们的目的.但在 iOS 7 之后,截屏不再会取消屏幕的 touch 事件,所以导致了 Snapchat 和

iOS开发备忘录:自定义UINavigationBar背景图片和Back按钮

iOS项目,根据设计图,有时需要自定义UIView的UINavigationBar的背景.可以切出来一张1像素左右的背景图片,来充当UINavigationBar的背景. 可以利用NavigationBar的- (void)setBackgroundImage:(UIImage *)backgroundImage forBarMetrics:(UIBarMetrics)barMetrics方法将图片填充NavigationBar的背景. 具体代码可参考: [self.navigationCont

使用padding代替高度实现背景图片高度按比例自适应

本篇文章由:http://xinpure.com/use-padding-instead-of-highly-adaptive-background-image-height-proportionately/ 高度百分比 将高度设置成百分比时,其高度是基于父元素来定的,设置成50%,就是将该元素高度设置成 父元素的高度值 x 50%. 但是将高度设置成百分比时,往往是不生效的!高度依然为0,这是为啥? 道理很简单,那就是父元素的高度也为0. 所以这就需要讲到浏览器对宽度及高度是如何计算的. 浏览

iOS开发--改变tableHeaderView的高度

1.先获取tableHeaderView 2.设置它的frame 3.将该view设置回tableview UIView *view=tableView. tableHeaderView; view.frame=newFrame; tableView. tableHeaderView =view; ref:http://www.cocoachina.com/bbs/read.php?tid-115251-page-1.html

IOS 开发中 TableView的文本Cell高度的自适应,UILabel自动换行适应

最后的运行效果: 需求: 1.表格里的UILable要求自动换行 2.创建的tableViewCell的高度会自动适应内容的高度 一.用xcode构建项目,创建一个有tableView的视图,用纯代码的形式实现: 1.创建一个UIViewController类,定义一个UITableView,实现TableView的委托和数据源协议 // //  TableViewController.h //  AdaptiveCell // //  Created by swinglife on 14-1-

iOS开发改变字符串中指定字符颜色,大小等等

NSString *strJTGZ = [NSString stringWithFormat:@"交通管制%d处 ",[jtgz intValue]]; NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc]initWithString:strJTGZ]; [attributedStr addAttribute:NSForegroundColorAttributeName value:[

iOS开发——使用技术OC篇&amp;保存(获取)图片到(自定义)相册

保存(获取)图片到(自定义)相册 最近在学 iOS相关技术(绘图篇实现画板功能)的时候设计到了两个常用的知识点,那就是保存图片到相册和葱相册中获取图片. 只是个人比较好奇拓展一些技术,说的难听点叫做装牛角尖,好听点就是为了装逼而已,所以在保存相册的时候使用真及测试发现不能保存到我iPhone里 main的自定义相册里面,就查看文档和资料,也借鉴别人的分享实现了想要的功能,就把他给记录下来,这个虽然没有直接保存和获取常用但是也是一项很好的实用技术. 一:首先来看看怎么获取相册的图片: 1 // 弹

ios开发之属性字符串NSAttributeString与NSString相互转换包含图片

分享几个常用的 属性字符串NSAtrributeString 和 NSString 普通字符串的 转换方法: 一:把普通的字符串,替换为包含图片的属性字符串 plist 文件,图片 格式见下图: +(NSMutableAttributedString *)stringToAttributeString:(NSString *)text { //先把普通的字符串text转化生成Attributed类型的字符串 NSMutableAttributedString * attStr = [[NSMut