是否可以輕鬆地更改我的應用程序內某種類型的所有對象? 例如,更改所有UILabels的字體/顏色或在所有UILabels
上應用setAdjustsFontSizeToFitWidth:
函數。如何更改應用程序中文本字段類型的所有對象?
1
A
回答
0
您可以使用下面的代碼更改寬度,顏色,尺寸textfield
或任何對象。
for(UITextField *txt in self.view.subviews)
{
if([txt isKindOfClass:[UITextField class]])
{
//here do your work
txt.frame=CGRectMake(0, 50, 100, 100);//set size,color anything your want.
}
}
使您想要使用的對象的類。
0
嘗試使用以下UIView
類別:
的UIView + MakeChange.h
@import UIKit;
@interface UIView (MakeChange)
+(void)makeChangeInView:(UIView*)superview
withBlock:(void(^)(__kindof UIView* view))block;
@end
的UIView + MakeChange.m
#import "UIView+MakeChange.h"
@implementation UIView (MakeChange)
+(void)makeChangeInView:(UIView*)superview
withBlock:(void(^)(__kindof UIView* view))block
{
if(!block || !superview) return;
for(UIView* subview in superview.subviews)
{
// Make changes to all subviews recursively
[self makeChangeInView:subview withBlock:block];
if([subview isKindOfClass:self.class])
block(subview);
}
}
@end
您可以更改字體/每個當前顯示的顏色使用UILabel
驗證碼:
[UILabel makeChangeInView:[[[UIApplication sharedApplication] windows] firstObject]
withBlock:^(UILabel* label) {
[label setTextColor:[UIColor redColor]];
[label setFont:[UIFont systemFontOfSize:10.0]];
}];
- 顯然,同樣的類可以用於任何UIView子類,以及(
UITextField
,UIButton
等) - ,請謹慎使用,特別是如果你的UI是複雜的 - 所有工作是在UI線程上完成的(沒有其他簡單的選擇),並且你不想阻塞它太長時間...出於同樣的原因,儘量避免將它用於主應用程序窗口(如我的示例中所示) 。
相關問題
- 1. 更改輸入類型對所有文本字段到密碼字段
- 2. 設置原型的對象的字段更改所有實例
- 3. 如何更改Xcode中文本字段的鍵盤類型
- 4. 如何更改文本字段中的文本內部類?
- 5. xaml - 如何更改應用程序中所有文本的顏色
- 6. 更改我的應用程序中所有文本瀏覽的字體?
- 7. 如何更改應用程序腳本所有者?
- 8. 如何更改Javascript對象的類型?
- 9. 更改所有文本字段中的字符
- 10. Multiview應用程序。無法更改文本字段值
- 11. 如何更改流星應用程序的文檔類型和內容類型
- 12. 如何在MongoDB shell中將對象的_id字段的類型更改爲ObjectId?
- 13. 如何確定黑莓應用程序中的對象類型?
- 14. 角度2文件更改 - 更改所有應用程序
- 15. 如何更改DAO.Recordset字段類型
- 16. 如何更改此應用程序的JLabel中的文本?
- 17. 更改所選文本字段
- 18. 如何在文本字段中顯示NSMutable Array中的所有對象?
- 19. 如何觀察模型對象上的所有屬性更改?
- 20. 如何更改odoo 9中float字段的文本對齊
- 21. 如何更改Android應用程序中文本的顏色
- 22. 在所有應用程序中更改字體人臉
- 23. 更改對象類型
- 24. 對象類型更改
- 25. 運行web應用程序後更改了asp.net中的文本框類型
- 26. 如何更改第三方Django應用程序的字段或模型屬性?
- 27. 如何爲應用程序中的所有文本設置fontFamily?
- 28. 我如何測試具有兒童組件中所有文本字段的反應應用程序?
- 29. 如何在「打開」對話框中更改我的應用程序的文本?
- 30. 如何更改Facebook應用程序的業務所有者?
你可以嘗試方法swizzling。您可以將原始選擇器或類型的方法調整爲自定義選擇器或方法。在這裏閱讀更多關於它的內容 - http://nshipster.com/method-swizzling/。 HTH :) – iamyogish
您可以使用UIAppearance自定義整個UIKit控件類的外觀https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIAppearance_Protocol/index.html –
您可以使用'子類'選項可以在項目中設置每個「UILabel」的特定屬性。閱讀更多關於['子類'這裏]的詳細信息(https://www.objc.io/issues/13-architecture/subclassing/) –