iOS中默认样式修改-b
项目中有大量的UITableView都需要显示sectionHeader。iOS中默认sessionHeader上的textLabel样式跟设计图不符。
按照我们之前的解决方案,是在每个UITableviewController上注册sessionHeader,然后在tableView:viewForHeaderInSection:方法中重用它们,并且修改文本字体和颜色。这种方式会产生一定量的重复代码,并且不利于维护。谁知道客户会不会心血来潮让把文字改成红色……
在这里我们打算使用+ (instancetype)appearance;方法对全局的UITableViewHeaderFooterView样式进行修改。首先尝试的代码是:
[[UITableViewHeaderFooterView appearance].textLabel setFont:[UIFont systemFontOfSize:12]];
发现并没有奏效,仔细阅读了一下文档发现这么一段话
To customize the appearance of all instances of a class, send the relevant appearance modification messages to the appearance proxy for the class.
字面上理解的应该是发送一个message到对象上,而上面的代码是对于对象的一个属性发送一个message。应该是这里的问题。
继续阅读代码,发现另外两个方法
+ (instancetype)appearanceWhenContainedIn:(nullable Class <UIAppearanceContainer>)ContainerClass;
+ (instancetype)appearanceWhenContainedInInstancesOfClasses:(NSArray<Class <UIAppearanceContainer>> *)containerTypes;
这两个方法分别对应ios9之前和之后
实现如下:
#ifdef __IPHONE_9_0
[[UILabel appearanceWhenContainedInInstancesOfClasses:@[[UITableViewHeaderFooterView class]]] setFont:[UIFont systemFontOfSize:12]];
#else
[[UILabel appearanceWhenContainedIn:[UITableViewHeaderFooterView class]] setFont:[UIFont systemFontOfSize:12]];
#endif
问题解决~
iOS中默认样式修改-b的更多相关文章
- 在vue组件的stylus样式总 取消search类型的input按钮中默认样式
在vue组件的stylus样式中 取消search类型的input按钮中默认样式 记录一个坑 环境 Vue组件 使用了Stylus的CSS风格. 问题 input输入框使用了 type="s ...
- element-ui默认样式修改
来自 :https://blog.csdn.net/wangguoyu1996/article/details/81394707 侵删 我们在使用element-ui的时候经常会遇到需要修改组件默认样 ...
- Ionic4.x Theming(主题) 增加内置主题 颜色 修改内置组件默认样式 修改底部 Tabs 背景颜色以及按钮颜色
1.Ionic4.x Theming(主题) Ionic4.x 修改主题颜色的话需要在 src/theme/variables.scss 文件中修改. https://ionicframework.c ...
- vue中Element-ui样式修改
下拉框(el-dropdown) // hover 下拉框的hover效果 .el-dropdown-menu__item:focus, .el-dropdown-menu__item:not(.is ...
- HTML复选框checkbox默认样式修改
此方法可以将复选框的默认样式替换成任意样式.如图: 未选择: 选择时: 思路:将复选框隐藏,利用lebal元素的焦点传递特性,用lebal的样式替代复选框. 代码如下: <!DOCTYPE ht ...
- H5中input[type="date"]默认样式修改 伪类
- Android中EditText样式修改 聚焦光标、背景
在Android开发中,根据项目的需求,需要定制一些特殊的样式,例如:使用EditText时,聚焦时的背景及光标图片使用自定义而非android系统默认的.这两天,在项目中涉及此需求,现记录如下: 首 ...
- input时间表单默认样式修改(input[type="date"])
一.时间选择的种类: HTML代码:选择日期:<input type="date" value="2018-11-15" /> 选择时间:<i ...
- elementUI默认样式修改不成功的问题
问题: login.vue中引入<style lang="postcss" src="./login.css" scoped></style& ...
随机推荐
- hdu 4523 威威猫系列故事——过生日 小模拟
威威猫系列故事——过生日 Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total ...
- NPOI组件集锦
关于NPOI不错的介绍:http://www.cnblogs.com/restran/p/3889479.html http://www.cnblogs.com/Irving/archive/2012 ...
- C# 可访问一致性不一致
出现原因,其中一个是返回参数的访问级别小于函数的访问级别, 也就是说当定义一个返回参数的方法的时候,如果返回参数的访问级别低于方法的访问级别就会出现这样的错误,这个是可以理解的,如果返回的参数不能被访 ...
- [D3] 13. Cleaner D3 code with selection.call()
selection.call() method in D3 can aid in code organization and flexibility by eliminating the need t ...
- 管理http服务的脚本
因为老是须要又一次安装系统,重一次都要又一次设置http服务的启动脚本.麻烦,所以这一次就把脚本备份出来. httpd for Ubuntu system: nginx + php-fpm #! /b ...
- CGI与FastCGI 转
CGI与FastCGI 当我们在谈到cgi的时候,我们在讨论什么 最早的Web服务器简单地响应浏览器发来的HTTP请求,并将存储在服务器上的HTML文件返回给浏览器,也就是静态html.事物总是不 断 ...
- 购买SSD固态硬盘须当心,你知道什么是SLC、 MLC、TLC闪存芯片颗粒吗?
固态硬盘凭借其存取速率超快等自身优势,被越来越多的电脑爱好者所青睐,并迅速普及到了广大用户的电脑中,因为固态硬盘与传统机械硬盘相比,确实在运行效率等方面有了质的提升,但是亦是美网络小编要提醒大家的是, ...
- MKServerBuilder.psd1
MKServerBuilder.psd1 # # Module manifest for module 'MKServerBuilder' # # Generated by: Edward Guan ...
- C#将DataTable导出Execl、Word、Xml
/// <summary> /// 将DT转换为Execl的方法 /// </summary> /// <param name=" ...
- c# PadLeft,PadRight用法
补位 string str = "100"; str.PadLeft(5,'0') 输出:00100 str.PadRight(5, '0') 输出:10000