文档章节

appearanceWhenContainedIn in Swift

asjoker
 asjoker
发布于 2016/05/14 09:35
字数 176
阅读 23
收藏 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
Swift 就像 Kotlin?看看 Swift 与 Kotlin 的简单对比

一位国外的程序员认为 Swift 的语法与 Kotlin 相似,并整理了一些 Swift 和 Kotlin 的对比,下面是一些例子,大家不妨也看看。 BASICS Hello World Swift Kotlin 变量和常量 Swift Kotlin 显...

局长
2017/05/20
9.3K
34
SwiftStack-Swift容量管理-平滑添加/删除存储

SwiftStack在OpenStack Swift基础上开发的一种产品,当然公司的名称也同样为SwiftStack。 博客:http://swiftstack.com/blog/ SwiftStack里面有篇文章比较好的是Swift Capacity Management 即...

icheer
2014/01/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux系统设置全局的默认网络代理

更改全局配置文件/etc/profile all_proxy="all_proxy=socks://rahowviahva.ml:80/"ftp_proxy="ftp_proxy=http://rahowviahva.ml:80/"http_proxy="http_proxy=http://rahowviahva.ml:80/"......

临江仙卜算子
25分钟前
1
0
java框架学习日志-6(bean作用域和自动装配)

本章补充bean的作用域和自动装配 bean作用域 之前提到可以用scope来设置单例模式 <bean id="type" class="cn.dota2.tpye.Type" scope="singleton"></bean> 除此之外还有几种用法 singleton:......

白话
47分钟前
4
0
在PC上测试移动端网站和模拟手机浏览器的5大方法

总结很全面,保存下来以备不时之需。原文地址:https://www.cnblogs.com/coolfeng/p/4708942.html

kitty1116
今天
5
0
分布式Session共享解决方案

分布式Session一致性? 说白了就是服务器集群Session共享的问题 Session的作用? Session 是客户端与服务器通讯会话跟踪技术,服务器与客户端保持整个通讯的会话基本信息。 客户端在第一次访...

Java干货分享
今天
10
0
开源软件和开源模式面临的生存危机

导读 开源模式可能正面临一场危机。越来越多的开源软件和平台被大型云计算服务商融入自家的云服务体系,并以此获利颇丰,但并不支付费用,也没有对开源社区做出相应的回馈。而实际上,大部分...

问题终结者
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部