文档章节

appearanceWhenContainedIn in Swift

asjoker
 asjoker
发布于 2016/05/14 09:35
字数 176
阅读 22
收藏 0

转载 appearanceWhenContainedIn in Swift

Update for iOS 9: If you're targeting iOS 9+ (as of Xcode 7 b1), there is a new method in the UIApperance protocol which does not use varargs:

static func appearanceWhenContainedInInstancesOfClasses(containerTypes: [AnyObject.Type]) -> Self

Which can be used like so:

UITextField.appearanceWhenContainedInInstancesOfClasses([MyViewController.self]).keyboardAppearance = .Light

If you still need to support iOS 8 or earlier, use the following original answer to this question.

For iOS 8 & 7: These methods are not available to Swift because Obj-C varargs methods are not compatible with Swift (see http://www.openradar.me/17302764).

I wrote a non-variadic workaround which works in Swift (I repeated the same method for UIBarItem, which doesn't descend from UIView):

// UIAppearance+Swift.h
@interface UIView (UIViewAppearance_Swift)
// appearanceWhenContainedIn: is not available in Swift. This fixes that.
+ (instancetype)my_appearanceWhenContainedIn:(Class<UIAppearanceContainer>)containerClass;
@end
// UIAppearance+Swift.m
@implementation UIView (UIViewAppearance_Swift)
+ (instancetype)my_appearanceWhenContainedIn:(Class<UIAppearanceContainer>)containerClass {
    return [self appearanceWhenContainedIn:containerClass, nil];
}
@end

Just be sure to #import "UIAppearance+Swift.h" in your bridging header.

Then, to call from Swift (for example):

UITextField.my_appearanceWhenContainedIn(MyViewController.self).keyboardAppearance = .Light

© 著作权归作者所有

共有 人打赏支持
asjoker
粉丝 10
博文 108
码字总数 79411
作品 0
东城
程序员
ios 7 statusbar 状态栏 跟随navigationbar的颜色而改变

![在此输入图片描述][1] [1]: http://static.oschina.net/uploads/space/2013/1104/112521_N6Pc_1021556.jpg 首先,我们要搞清楚info.plist中 View controller-based status bar appearance这......

kobeli
2013/11/04
0
0
利用 UIAppearance 协议自定义控件外观

文章开头先援引一下Mattt Thompson大神在UIApearance里的一句话吧: Users?will?pay?a?premium?for?good-looking?software. 就如同大多数人喜欢看帅哥美女一样,一款App能不能被接受,长得怎...

安宇夕
2015/11/19
0
0
Swift 与 Kotlin 的简单对比

一位国外的程序员认为 Swift 的语法与 Kotlin 相似,并整理了一些 Swift 和 Kotlin 的对比,下面是一些例子,大家不妨也看看。 BASICS Hello World Swift print("Hello, world!") Kotlin pri...

Conor白
2017/05/24
0
0
openstack-kilo,glance使用swift 作为后端存储

已用RDO安装好openstack 扩展swift的存储空间 rdo安装的swift存储的地方为2G左右/srv/node/swiftloopback ,太小需扩大 本实验环境,swift节点可以将某个磁盘再分个区使用,如下: 配置swift...

muyuluo
2017/09/19
0
0
Swift 就像 Kotlin?看看 Swift 与 Kotlin 的简单对比

一位国外的程序员认为 Swift 的语法与 Kotlin 相似,并整理了一些 Swift 和 Kotlin 的对比,下面是一些例子,大家不妨也看看。 BASICS Hello World Swift print("Hello, world!") Kotlin pri...

局长
2017/05/20
7.1K
34

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周三乱弹 —— 我居然在 osc 里追剧

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @舆情风控小组 :分享王菲的单曲《笑忘书》 《笑忘书》- 王菲 手机党少年们想听歌,请使劲儿戳(这里) @艾尔库鲁斯:如果给大家一个选择的机...

小小编辑
38分钟前
45
4
rabbitMq的客户端使用笔记

1、channel声明队列的queueDeclare方法的参数解析 durable: 是否持久化, 队列的声明默认是存放到内存中的,如果rabbitmq重启会丢失,如果想重启之后还存在就要使队列持久化,保存到Erlang自...

DemonsI
46分钟前
0
0
“全新” 编程语言 Julia开箱体验

本文共 851字,阅读大约需要 3分钟 ! 概 述 Julia 是一个 “全新”的高性能动态编程语言,前两天迎来了其 1.0 正式版的重大更新。Julia集 Python、C、R、Ruby 之所长,感觉就像一种脚本语言...

CodeSheep
今天
11
0
软件自动化测试初学者忠告

题外话 测试入门 很多受过高等教育的大学生经常问要不要去报测试培训班来入门测试。 答案是否。 高等教育的合格毕业生要具备自学能力,如果你不具备自学能力,要好好地反省一下,为什么自己受...

python测试开发人工智能安全
今天
5
0
java并发备忘

不安全的“先检查后执行”,代码形式如下: if(条件满足){ //这里容易出现线程安全问题//doSomething}else{//doOther} 读取-修改-写入 原子操作:使用CAS技术,即首先从V中读取...

Funcy1122
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部