我有一堆文本视图,现在我想在所有这些视图中打开自动调整功能。我不想单独突出显示每个,我只希望更改应用于应用程序中的所有文本视图。所以我不想修改框架。我一定会选出最好的答案。
编辑:我想我之前应该提到我正在使用故事板。答案 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_SELECTOR
。 This post似乎表明某个属性可能没有此标志,但仍然遵守来自外观代理的消息。所有这一切,@ marddy是对的。依赖这种长期可能是一种风险。
答案 1 :(得分:0)
一个选项是继承UITextView
并创建CustomTextView
。在其init
方法或layoutSubviews
方法中,设置自动调整掩码,然后在项目中使用CustomTextView
。使用init
方法进行设置的一个优点是,您可以稍后覆盖此自动调整大小的掩码。