-1

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

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

4

2 回答 2

1

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

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

这将使所有 UITextView 以灵活的宽度和高度响应。这是一个关于如何将代理用于其他 UI 控件的精彩教程:

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

编辑:

这段代码应该可以工作,我已经在模拟器和 iPhone 上直接测试过,即使autoresizingMaskUIView.h 中的属性没有用UI_APPEARANCE_SELECTOR. 这篇文章似乎表明一个属性可能没有这个标志,但仍然服从来自外观代理的消息。综上所述,@rmaddy 是对的。长期依赖这个可能是有风险的。

于 2012-12-11T18:49:37.823 回答
0

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

于 2012-12-11T19:02:03.880 回答