我想全局应用设置(对于我的应用中的所有文本UIViews)

时间:2012-12-11 18:44:30

标签: ios xcode

我有一堆文本视图,现在我想在所有这些视图中打开自动调整功能。我不想单独突出显示每个,我只希望更改应用于应用程序中的所有文本视图。所以我不想修改框架。我一定会选出最好的答案。

编辑:我想我之前应该提到我正在使用故事板。

2 个答案:

答案 0 :(得分:1)

在iOS 5.0+中,您应该可以像这样使用UITextView的外观代理:

[[UITextView appearance] setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];

这将使所有UITextView的响应具有灵活的宽度和高度。这是一个很好的教程,介绍如何将代理用于其他UI控件:

http://www.raywenderlich.com/4344/user-interface-customization-in-ios-5

编辑:

此代码应该可以工作,我已经在模拟器和iPhone上直接测试了这个,即使UIView.h中的autoresizingMask属性没有标记为UI_APPEARANCE_SELECTORThis post似乎表明某个属性可能没有此标志,但仍然遵守来自外观代理的消息。所有这一切,@ marddy是对的。依赖这种长期可能是一种风险。

答案 1 :(得分:0)

一个选项是继承UITextView并创建CustomTextView。在其init方法或layoutSubviews方法中,设置自动调整掩码,然后在项目中使用CustomTextView。使用init方法进行设置的一个优点是,您可以稍后覆盖此自动调整大小的掩码。