自定义ios7标题栏和状态栏

iOS Swift 分享:实现自定义标题栏 最后,我们还可以通过自定义标题栏来实现更高级的效果,如渐变背景、透明度变化等。在Storyboard中,我们将添加一个包含自定义标题栏的ViewController。例如,我们可以在标题栏右侧添加一个返回按钮,并在按钮被点击时执行相应的操作。通过自定义标题栏,我们可以为应用程序增加个性化的外观,并提供更好的用户体验。通过添加一个UIButton,并设置其标题、颜色和点击事件,我们可以实现返回按钮的功能。通过设置UILabel的文本、颜色和对齐方式,我们可以自定义标题的外观。如果你有任何疑问,请继续提问。 阅读详情

转自:http://www.2cto.com/kf/201312/262965.html


自定义ios7标题栏和状态栏

跟大家一样,我一直忙碌的适配我的APP在ios7下的表现。iOS7的最新版本引入了大量的视觉变化。从开发人员的角度来看,导航栏和状态栏是2个最显而易见的变化。状态栏现在是透明/半透明的,也就是说view 可以透过状态栏,导航栏的背景图像可以向上延伸的状态栏的后面。

注:本文译自 Customizing Navigation Bar and Status Bar in iOS 7

如果你自己阅读此片文章 你可以学会如上的几个技巧:

加载中...

本工程是在xcode5下编写的。所以,如果你还在使用旧版本的Xcode,请确保您运行示例Xcode项目之前升级到Xcode中5。

默认的导航栏在iOS中7

在我们进去的定制,让我们先来看看由Xcode 5和iOS 7生成的默认导航栏。只需用单-视图-控制器模板的Xcode项目。嵌入视图控制器在导航控制器。如果您不想从头开始,你可以下载这个示例的Xcode项目。

Xcode5下面有iOS 6和iOS7两个模拟器。你可以尝试用这两个不同版本的模拟器运行示例项目。

加载中...

正如你所看到的,在iOS的7导航栏默认是交织在一起的状态栏。默认的颜色也改为浅灰色,以及。

更改导航栏的背景颜色

在iOS7,tintColor属性不能再用于设置栏的颜色。相反,使用barTintColor属性来改变背景颜色。您可以将下面的代码在didFinishLaunchingWithOptions:AppDelegate.m文件下。

1[ [ UINavigationBar appearance] setBarTintColor :[UIColor yellowColor ] ] ;

下面是结果:

加载中...

通常你直接使用系统的颜色并不好看。下面是设置RGB颜色一个非常有用的宏:

#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

简单地把它在某处AppDelegate.m的开始,并使用它来创建与任何RGB色彩你想要的任何的UIColor对象。下面是一个例子:

1[[UINavigationBar appearance] setBarTintColor:UIColorFromRGB(0x067AB5)];

默认情况下,导航栏的半透明属性设置为YES。此外,还有适用于所有导航栏系统模糊。在此设定下,iOS的7趋于饱和度的栏的颜色。下面是示例导航栏用不同的半透明设置。

加载中...

要禁用半透明的属性,你可以简单地选择在xib的导航栏。在属性检查里面,取消半透明复选框,如下图。

加载中...

在导航栏使用背景图片

如果您的应用程序使用了自定义图像作为栏的背景,你需要提供一个“更大”的图片,使其延伸了状态栏的后面。导航栏的高度是从44点(88像素)更改为64点(128像素)。

你仍然可以使用了setBackgroundImage:方法来指定自定义图像的导航栏。下面是代码行设置背景图片:

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"nav_bg.png"] forBarMetrics:UIBarMetricsDefault];

 

例程捆绑了两种不同的背景图片:nav_bg.png和nav_bg_ios7.png。

加载中...vcC4sbO+sM28xqw=" class="aligncenter size-full wp-image-2553" src="http://www.2cto.com/uploadfile/Collfiles/20131208/Navigation-Bar-Background-Image.jpg" />

改变导航栏标题的字体

就像iOS 6,您可以通过使用导航栏的“titleTextAttributes”属性来自定义的文本样式。您可以指定字体,文字颜色,文字阴影颜色,文字阴影在文本标题偏移属性字典,使用下面的文本属性键:

  • UITextAttributeFont - 字体
  • UITextAttributeTextColor - 文字颜色
  • UITextAttributeTextShadowColor - 文字阴影颜色
  • UITextAttributeTextShadowOffset - 偏移用于文本阴影

    下面是示例代码片段改变的导航栏标题的字体样式:

     NSShadow *shadow = [[NSShadow alloc] init];
    shadow.shadowColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8];
    shadow.shadowOffset = CGSizeMake(0, 1);
    [[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:
    [UIColor colorWithRed:245.0/255.0 green:245.0/255.0 blue:245.0/255.0 alpha:1.0], NSForegroundColorAttributeName,
    shadow, NSShadowAttributeName,
    [UIFont fontWithName:@"HelveticaNeue-CondensedBlack" size:21.0], NSFontAttributeName, nil]];

     

    如果您更改该示例应用程序,导航栏中的标题看起来应该像这样:

    加载中...

    自定义后退按钮的颜色

    在iOS7,所有的栏按钮都是没编辑的的。你可以改变tintColor属性,它提供了一个快速和简单的方式,。下面是一个示例代码片段:

    1[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];

    除了后退按钮,请注意,tintColor属性影响所有按钮标题和按钮图像。

    加载中...

    如果你想使用一个自定义图像来替换默认的字体,可以设置backIndicatorImage和backIndicatorTransitionMaskImage。

    1[[UINavigationBar appearance] setBackIndicatorImage:[UIImage imageNamed:@"back_btn.png"]];
    [[UINavigationBar appearance] setBackIndicatorTransitionMaskImage:[UIImage imageNamed:@"back_btn.png"]];

     

    图像的颜色由tintColor属性控制。

    加载中...

    使用图片作为导航栏标题

    不想标题栏是光秃秃的文字?您可以通过使用代码行中的图像或标志取代它:

    1self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"appcoda-logo.png"]];

    我们简单地改变titleview用来自定义图像来。这不是在iOS7的新功能。该代码也适用于较低版本的iOS。

    加载中...

    添加多个栏按钮项目

    同样,这个技巧是不是专门为iOS 7。,您希望添加导航栏的一侧不止一个栏按钮项目。无论是leftBarButtonItems和rightBarButtonItems 您在导航栏左侧/右侧指定自定义栏按钮项目。比如你想添加一个摄像头和一个共享按钮右侧的吧。您可以使用下面的代码:

      
    UIBarButtonItem *shareItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:nil];
    UIBarButtonItem *cameraItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:nil];
    NSArray *actionButtonItems = @[shareItem, cameraItem];
    self.navigationItem.rightBarButtonItems = actionButtonItems;

     

    下面是示例结果:

    加载中...

    改变状态栏的风格

    在旧版本的iOS,状态栏总是在黑色的风格,没有太多可以改变。与iOS 7的发布,你可以改变每个视图控制器状态栏的外观。您可以使用UIStatusBarStyle常量来指定状态栏的内容是否应该或深或浅。默认情况下,状态栏会显示暗的内容。换句话说,如时间,电池指示灯和Wi-Fi信号的项目显示为暗色。如果您使用的是深色背景在导航栏上,你最终会像这样:

    加载中...

    在这种情况下,你可能需要的状态栏的风格改变从暗到亮。有两种方法可以做到这一点。在iOS系统7,你可以控制从单个视图控制器通过覆盖preferredStatusBarStyle状态栏的样式:

    -(UIStatusBarStyle)preferredStatusBarStyle
    {
    return UIStatusBarStyleLightContent;
    }

    对于示例应用程序,只要把上面的代码中RecipeNavigationController.m和状态栏和白得的内容。

    加载中...

    上面介绍的方法是首选的方法来改变状态栏风格的iOS 7。或者,您也可以使用的UIApplication statusBarStyle方法设置状态栏的风格。但首先你需要选择退出““View controller-based status bar appearance”。根据项目目标的信息选项卡中,插入一个名为“View controller-based status bar appearance”新字符串并将其值设置为NO。

    加载中...

    通过禁用“View controller-based status bar appearance”,您可以通过使用下面的代码设置状态栏的样式:

    1[ [的UIApplication sharedApplication ] setStatusBarStyle : UIStatusBarStyleLightContent ] ;

    隐藏状态栏

    在任何情况下,你要隐藏状态栏,可以覆盖prefersStatusBarHidden:在你的控制器:

     - (BOOL)prefersStatusBarHidden
    {
    return YES;
    }
     

    总结

    iOS的7为开发人员提供新的自由定制的导航栏和状态栏的外观。如果您是从的iOS 6移植应用程序到iOS 7或创建一个全新的应用程序为iOS 7,我希望你会发现这些有用的技巧。

    为了您的完整的参考,你可以从这里下载本演示项目的源代码。只是取消注释在示例项目中的任何代码片段来测试的变化。

    像你们许多人,我还在探索的iOS 7 SDK的所有新的变化。我绝不是在iOS 7的专家。如果您发现文中的任何错误,请让我知道。如果您发现与导航栏和状态栏的任何提示和技巧,也请与我们留下评论如下分享。

ios 自定义标题栏状态栏 立即下载

相关推荐

ios-仿今日头条的滚动标题栏.zip

仿今日头条的滚动标题栏 github地址:https://github.com/zhiyoukaifa/ZSTitleSelectedView.git

IOS创建标题栏的两种方法

首先建立一个空工程。然后新建一个带XIB的TitleViewController的头文件和实现文件。再新建一个mainwindow.xib。 在AppDelegate.h中 #import @class TitleViewController; @interface AppDelegate : UIResponder UIApplicationDelegate>

oMingTanZhen的专栏 880

openclaw + ollama本地模型 + 飞书平台 windows平台部署教程

本教程将指导您在 Windows 10/11 环境下,通过 Ollama 运行本地模型,并结合 OpenClaw 接入飞书,搭建一个完全本地化的 AI 助手。

专注于技术研发行业技术主要有AI人工智能视觉识别、物联网技术、电商平台、app原生技术、微信小程序、鸿蒙语言开发、办公企业oa、ERP等,致力于做东半球最优秀的程序员 2173

ios隐藏标题栏方式

info.plist View controller-based status bar appearance  NO xcode 设置 Hide status bar 选中

zhengjuqiang的博客 2289

AIOps探索 | 如何用大模型构建高效运维知识及智能问答平台(1)

好久没有分享AIOps相关干货了,最近大模型这么火,而且我们有客户已经基于大模型构建了知识及智能问答平台,需要在运维领域结合使用场景进行应用。为此,楼主从头到尾声梳理了一遍大模型在运维领域构建知识及智能问答平台的应用场景、技术实现,总结出来供大家一同探索,希望对大家理解和运用大模型有一定帮助~

智能运维及数据中台探索 2810

腾讯ACE反作弊系统:内核驱动与AI行为分析如何守护游戏公平

在游戏安全领域,反作弊技术是保障公平竞技环境的核心防线。其基本原理是通过监控系统关键行为,识别并阻断非法的第三方程序干预。从技术实现看,现代反作弊方案普遍采用分层防御架构,结合用户态模块进行应用层检测,并依赖内核态驱动实现底层深度监控,以此构建纵深防御体系。这种技术的核心价值在于,它能有效对抗从简单内存修改到高级驱动级作弊等多种威胁,维护游戏经济系统和玩家体验的完整性。随着作弊手段的演进,行为分析与AI赋能变得至关重要,系统通过机器学习模型分析进程行为序列的异常模式,即使面对未知特征的外挂变种也能进行有效识

weixin_33978578的博客 741

flutter设置windows是否显示标题栏和状态栏和全屏显示

标题栏新增功能按钮及自定义标题栏,实现窗口的最大化、最小化、恢复为上一次的状态、关闭;隐藏原有标题栏->自定义标题栏->调用Window API实现相关API@override//可拖动区域Expanded()),// 可任意添加其他功能按钮...//自定义最小化按钮),//自定义最大化按钮// },),//自定义关闭窗口按钮),],),windowManager.maximize() 窗口最大化windowManager.minimize() 窗口最小化。

5397

‌NTRU算法详细教程 | 2025年最新版(基于NIST后量子密码标准更新)

‌:NTRU是当前抗量子加密的黄金标准,‌。

blns_yxl的博客 1802

[2014-02-17]自定义ios7标题栏和状…

注:本文译自Customizing Navigation Bar and Status Bar in iOS 7 跟大家一样,我一直忙碌的适配我的APP在ios7下的表现。iOS7的最新版本引入了大量的视觉变化。从开发人员的角度来看,导航栏和状态栏是2个最显而易见的变化。状态栏现在是透明/半透明的,也就是说view 可以透过状态栏,导航栏的背景图像可以向上延伸的状态栏的后面。 如果你自己阅

Mr_Peng0605的博客 697

银河麒麟V10 SP3系统下如何安全安装gcc-toolset-10(附yum仓库避坑指南)

本文详细介绍了在银河麒麟V10 SP3系统中安全部署gcc-toolset-10的完整方案。核心在于通过配置默认禁用的yum仓库(如EPKL仓库)并配合--enablerepo参数进行精准安装,有效规避依赖冲突风险,实现与系统默认GCC 7.3的稳定共存。文章还提供了多版本环境切换、系统维护及故障排查的实用指南,确保操作的可控与可逆。

h0i1j2k3l的博客 589

什么是华为OD?怎么才能通过华为OD机试?华为OD机试怎么刷题?(2024最新华为OD机试E卷更新中)

华为OD是Outsourcing Dispacth模式,是华为和外企德科联合招聘的简称。目前华为大多数是OD招聘。OD模式也是华为提出的一种新的用工形式,每年都会从OD项目挑优秀员工转为正编。所有OD和正式员工一样对待,没有差别,部门平时开会、评审等活动都是一起参加的,是同薪同酬,都是由华为的HR直接定的薪资,看的是我们技术能力。华为是大企业,能到华为上班也是有能力的,每个部门都有好多职位,是金子,在哪都会发光。

KJ.JK 11万+

android 状态栏颜色和标题栏一样,仿ios状态栏颜色和标题栏颜色一致的实例代码...

首先创建一个工具类import android.annotation.TargetApi;import android.app.Activity;import android.content.Context;import android.os.Build;import android.support.v4.content.ContextCompat;import android.view.View...

weixin_42433412的博客 729

OpenStack 之 Epoxy版本 部署实战

OpenStack Epoxy 是 OpenStack 的第 31 个版本,其版本号为 2025.1,于 2025 年 4 月 2 日正式发布。

求知若渴,虚心若愚。 235

微信小程序 自定义标题栏

微信小程序可以设置自定义标题栏,可以针对不同页面单独设置1.在页面文件.json文件中,设置如下属性,自定义导航栏和导航栏样式"navigationStyle":"custom","navigationBarTextStyle":"white",  特别是第二个navigationBarTextStyle属性可以将胶囊样式调整为透明效果2.设置自定义导航栏布局样式...

weixin_30603633的博客 3328

基于遗传算法的码头泊位分配调度优化问题求解

例如,基因型为 [3, 1, 4, 2] 表示第一艘停靠在第三个泊位,第二艘停靠在第一个泊位,以此类推。同时,该码头有 n 艘船需要停靠,每艘船的货物数量、船长、船宽都不同,需要根据其特性来分配合适的泊位,并确定每个泊位的使用时间,以最大化码头的使用效率。码头的泊位分配调度是一个关键的物流问题,它涉及到船舶的进出港、货物的装卸和存储等多个方面,因此对其进行优化是至关重要的。根据得到的最优个体,可以得到每个泊位停靠的船只、使用时间等信息,从而确定码头的泊位分配调度方案。% 不同船只的货物数量。

uote_e的博客 1075

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

mui在原生ios中标题栏显示被遮挡问题

公司开发用mui,混合开发后涉及到把mui页面丢到原生中显示,android中显示没问题,ios中显示标题栏页面被遮挡(电量那行状态栏是ios设置,标题栏以下自己设置)。 一开始思维固定了,以为标题栏高度不够,只一心想着去改变标题栏的高度。网上有设置webview的教程,没有非webview的高度修改。如下: 1、 首页配置 首页的titleNView在manifest.json文件中配置。...

ohdajing的博客 1332

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

在IOS7下自定义导航栏和状态栏

一、 改变NavigationBar 的颜色 在IOS7下,UINavigationBar 的 TintColor 已不再用于修改导航栏颜色了,取而代之的是以下代码 [[UINavigationBar appearance] setBarTintColor:[UIColor redColor]]; 可以通过设置NavigationBar 的 translucent 为 YES ,使 Navi

ifwang之路 4830

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

iOS 更改状态栏颜色和隐藏状态栏

更改状态栏颜色 iOS7以后 状态栏的字体为黑色:UIStatusBarStyleDefault 状态栏的字体为白色:UIStatusBarStyleLightContent 解决方案 1、在info.plist中,将View controller-based status bar appearance 设为 NO 状态栏字体的颜色只由下面的属性设定,默认为白色: [UIAppli...

LGSC的IOS学习之路专栏 317

如何在iOS 7.0中隐藏状态栏

使用Cordova做了一个小项目,在原来iOS6的时候显示挺好,升级为iOS7后,每次App启动后都会显示状态栏,而且状态栏和App的标题栏重叠在一起,非常难看,因此需要将状态栏隐藏起来。 首先,考虑了采用Code的方式,在MainViewControoler.m中写下如下代码: 但是测试并不生效。 于是尝试修改Info.plist文件,因为每个工程Info.p...

aifeier1982的博客 136
上一篇: 为什么我反对纯算法面试题
下一篇: iOS7 bringSubviewToFront 和frame问题
StudyRecord
博客等级 码龄16年 96粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值