Можно ли легко внести изменения во все объекты определенного типа внутри моего приложения? Например, измените шрифт/цвет всех UILabels или примените функцию setAdjustsFontSizeToFitWidth:
на всех UILabels
.Как внести изменения во все объекты текстового поля типа в приложении?
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
и т.д.) - Используйте его с осторожностью, особенно если ваш пользовательский интерфейс является сложным - все работа выполняется в потоке пользовательского интерфейса (нет другого простого выбора), и вы не хотите блокировать его слишком долго ... По той же причине старайтесь не использовать его для основного окна приложения (как в моем примере) ,
Смежные вопросы
- 1. Как внести изменения во все TreeView, которые существуют в форме
- 2. Как внести изменения в значение текстового поля в функцию jQuery
- 3. Как внести определенные изменения во все ключи хеша?
- 4. Как внести изменения в AMI
- 5. чтения текстового файла и внести изменения в C#
- 6. Прослушивание изменения текстового поля
- 7. событие изменения текстового поля
- 8. Как внести изменения в LineChart
- 9. Как внести изменения в сборку?
- 10. Как внести изменения в LinqPad
- 11. Как внести изменения ListView ItemControl в VirtualizingStackPanel во время выполнения
- 12. Условное предупреждение изменения текстового поля
- 13. Как заблокировать пользователя от изменения текстового поля
- 14. Как внести изменения в webdatagrid для сеанса?
- 15. Как внести изменения объекта в контакте
- 16. внести частичные изменения в datacontext
- 17. Обнаружение изменения поля текстового поля jQuery
- 18. изменения текстового поля на выбор
- 19. Попытка внести изменения подрывной
- 20. Как внести изменения в файл seed.flex
- 21. Как я могу внести изменения в какой-скопированного список, содержащий объекты ссылки типа без изменения оригинального один
- 22. Git: внести частичные изменения
- 23. Javascript - значение изменения текстового поля
- 24. Получить все объекты формы в приложении Django
- 25. Как внести изменения vimrc в действие
- 26. Как внести изменения в другую базу данных
- 27. Как внести изменения только в другой лист
- 28. Backbone.js. Правильно внести изменения
- 29. как внести изменения в значения в запросе
- 30. Angular2 - Как внести изменения в определенный элемент?
Вы можете опробовать метод swizzling. Если вы можете подгонять исходные селектор или методы типа к своему пользовательскому селектору или методу. Подробнее об этом читайте здесь - http://nshipster.com/method-swizzling/. HTH :) – iamyogish
Вы можете настроить внешний вид целого класса элементов управления UIKit, используя UIAppearance https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIAppearance_Protocol/index.html –
вы можете использовать ' Subclass' для установки определенного свойства каждого 'UILabel' в вашем проекте. подробнее читайте здесь ['subclassing' здесь] (https://www.objc.io/issues/13-architecture/subclassing/) –