作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
与 this 相同的问题,但这个问题被回避了(因为当时的保密协议(protocol))并且不再有效。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** Illegal property type, c for appearance setter, _installAppearanceSwizzlesForSetter:'
我在初始 View Controller 的 viewDidLoad
中设置它。 setTranslucent
会自动完成,并且不会提示,直到崩溃并谈论 swizzles 之类的事情。
任何有关这方面的信息都会很棒,但我仍然很难在我的应用程序中获得一致的状态栏外观。
最佳答案
似乎无法使用 UIAppearance
设置 translucent
属性。我不知 Prop 体原因,但我猜有些属性不受支持。但是,我通过创建自定义 UIViewController 并使应用程序中的所有其他 viewController 成为该自定义 viewController 的子类来解决了这个问题。这样,我可以设置全局属性(例如您的情况下的半透明),这些属性将由我的应用程序中的所有其他 viewController 继承。我知道这是一个很大的变化,但我希望它有所帮助。
**** 编辑 ****
从 iOS 8 开始,可以使用 UIAppearance 设置半透明度:
objective-c
if([UIDevice currentDevice].systemVersion.floatValue >= 8.0) {
[[UINavigationBar appearance] setTranslucent:YES];
}
swift
if (UIDevice.currentDevice().systemVersion as NSString).floatValue >= 8.0 {
UINavigationBar.appearance().translucent = true
}
关于uinavigationbar - 为什么[[UINavigationBar外观] setTranslucent :NO] crash my app?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19125468/
我是一名优秀的程序员,十分优秀!