iOS – 防止UIAppearance设置更改UIWebView输入附件视图

前端之家收集整理的这篇文章主要介绍了iOS – 防止UIAppearance设置更改UIWebView输入附件视图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的应用程序中有一个UIWebView,问题是我有一个UIAppearance来修改分段控件的外观,因此它修改了UIWebView文本字段的输入附件视图中的分段控件,我希望它看起来不错,或者不试图修改它.这就是它目前的样子:

解决方法

我只是通过使用[UIAppearance appearanceWhenContainedIn:]而不是[UIAppearance外观]来解决这个问题.

通过向选择器发送包含要自定义的元素的所有自定义ViewController类的nil-terminated列表来使用它.而不是

[[UISegmentedControl appearance] setBackgroundImage:buttonBackgroundImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

使用

[[UISegmentedControl appearanceWhenContainedIn:[MyViewController class],[MyOtherViewController class],nil] setBackgroundImage:buttonBackgroundImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

您不需要列出所有ViewControllers,只需列出您的顶级ViewControllers.这也使得以下技巧成为可能:创建一个UIViewController的’empty’子类CustomizedViewController,除了作为子类之外什么也不做 – 然后从你的代码中继承子类而不是UIViewController(基本上用’CustomizedViewController’替换’UIViewController’的所有出现’ – 除了CustomizedViewController实际上将UIViewController声明为其超类的地方.

然后用

[[UISegmentedControl appearanceWhenContainedIn:[CustomizedViewController class],nil] setBackgroundImage:buttonBackgroundImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

猜你在找的iOS相关文章