iOS 大话Navigation


修改系统导航栏的返回按钮

iOS开发中,navigation的返回按钮是英文“back”,想修改成中文“返回”或者自定义的文字;这么简单的事情却折腾了小半个小时。原来是被leftBarButtonItem和rightBarButtonItem的设置方法给迷惑了。

我们设置leftBarButtonItem和rightBarButtonItem的时候都是在当前页面;而backBarButtonItem却是在父页面;所以需要在调用

[self.navigationController  pushViewController:photoController  animated:YES];

之前执行;代码如下:

self.navigationItem.backBarButtonItem=[[UIBarButtonItem  alloc]  initWithTitle:@”返回“style:UIBarButtonItemStyleBordered  target:nil  action:nil];

[self.navigationController   pushViewController:photoController  animated:YES];

系统通常会默认上一页面的title为返回,其次如果设置backBarButtonItem,则会默认为backBarButtomItem,优先级最高的便是LeftBarButtomItem和RightBarButtomItem,优先级依次递增。


IOS 去掉导航栏(UINavigationBar)下方的横线

下图是要最终实现的效果:

但是,开始时会出现下图中箭头指向的横线效果:

这是导航栏的问题,将下边的代码放在viewWillAppear  方法中就可以实现效果:

- (void)viewWillAppear:(BOOL)animated{

[superviewWillAppear:animated];

//    self.automaticallyAdjustsScrollViewInsets = NO;

// 透明状态栏的延伸

//    self.edgesForExtendedLayout = UIRectEdgeNone;

[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarPosition:UIBarPositionAny   barMetrics:UIBarMetricsDefault];

self.navigationController.navigationBar.shadowImage = [[UIImage alloc] init];

self.navigationController.navigationBar.translucent = NO;



系统按钮

除了图像与文字按钮,还有一个小型的系统按钮库,可以创建那些在许多应用程序中都可以见到的标准化的预定义按钮。系统按钮也是UIBarButtonItem对象,可以通过类的initWithBarButtonSystemItem方法来创建。如下例:

UIBarButtonItem *myBookmarks = [ [ UIBarButtonItem alloc ] initWithBarButtonSystemItem: UIBarButtonSystemItemBookmarks  target: self action: @selector(mySelector:)];

下是目前支持的系统按钮,可以在UIBarButtonItem.h头文件中找到。

按钮标识符

描    述

UIBarButtonSystemItemDone                     蓝色文字按钮,标有“Done”

UIBarButtonSystemItemCancel                   文字按钮,标有“Cancel”

UIBarButtonSystemItemEdit                        文字按钮,标有“Edit”

UIBarButtonSystemItemSave                       蓝色文字按钮,标有“Save”

UIBarButtonSystemItemAdd                        图像按钮,上面有一个Å符号

UIBarButtonSystemItemFlexibleSpace          空白,占用空间大小可变

UIBarButtonSystemItemFixedSpace             空白占位符

UIBarButtonSystemItemCompose                图像按钮,上有一支笔和纸张

UIBarButtonSystemItemReply                      图像按钮,上有一个回复箭头

UIBarButtonSystemItemAction                     图像按钮,上有一个动作箭头

UIBarButtonSystemItemOrganize                 图像按钮,上有一个文件夹以及向下箭头

UIBarButtonSystemItemBookmarks              图像按钮,上有书签图标

UIBarButtonSystemItemSearch                     图像按钮,上有spotlight图标

UIBarButtonSystemItemRefresh                    图像按钮,上有一个环形的刷新箭头

UIBarButtonSystemItemStop                         图像按钮,上有一个停止记号X

UIBarButtonSystemItemCamera                    图像按钮,上有一个照相机

UIBarButtonSystemItemTrash                       图像按钮,上有一个垃圾桶

UIBarButtonSystemItemPlay                          图像按钮,上有一个播放图标

UIBarButtonSystemItemPause                       图像按钮,上有一个暂停图标

UIBarButtonSystemItemRewind                     图像按钮,上有一个倒带图标

UIBarButtonSystemItemFastForward              图像按钮,上有一个快进图标

自定义视图按钮

与导航栏类似,按钮也可以按照自定义视图类来绘制,这样你就可以将任何一种其他类型的视图对象作为按钮来显示:

UIBarButtonItem *customButton = [ [ UIBarButtonItem alloc ]   initWithCustomView: myView ];

创建工具栏

将所有希望显示出来的按钮都添加到前面创建的buttons数组:

[ buttons addObject: buttonImage ];

[ buttons addObject: buttonText ];

[ buttons addObject: myBookmarks ];

下一步,创建一个UIToolbar对象,并将你的按钮数组赋予工具栏作为项目列表:

UIToolbar *toolbar = [ [ UIToolbar alloc ] init ];

[ toolbar setItems: buttons animated: YES ];

最后,将你的导航栏的标题视图替换为新创建的工具栏,就像替换成分段控件一样:

self.navigationItem.titleView = toolbar;

当导航栏显示出来时,工具栏就会出现在它的中央。

调整大小

工具栏会对加入的按钮套用默认大小。如果你希望调整工具栏,让它可以更干净利落地适应导航栏的大小,可以用sizeToFit方法:

[ toolbar sizeToFit ];

工具栏的风格

就像许多其他基于视图的对象一样,UIToolbar也包含有一个风格属性,名为barStyle。这个属性可以用来调整工具栏的风格,令其与你为导航栏定义的风格相匹配:

toolbar.barStyle = UIBarStyleDefault;

可以将工具栏的风格设置为三种标准风格主题之一,这些主题也为大多数其他类型的栏状对象所使用

iOS基础-系统自带按钮样式- UIBarButtonSystemItem

UIBarStyleDefault                        默认风格;灰色背景、白色文字

UIBarStyleBlackOpaque               纯黑色背景、白色文字

UIBarStyleBlackTranslucent         透明黑色背景、白色文字

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容