2015-06-23 2 views
2

При просмотре приложения Apple «Почта» шрифты действий в строке примерно на 20% меньше, чем стандартные. Как я могу получить одинаковый размер шрифта в swift?Уменьшить размер шрифта для UITableViewRowAction

Вот иерархия вид:

<UITableViewCellDeleteConfirmationView: 0x14ed4edf0; frame = (320 0; 254 77.5); clipsToBounds = YES; autoresize = H; layer = <CALayer: 0x170620340>> 
    | <_UITableViewCellActionButton: 0x14ed190f0; frame = (155 0; 99 77.5); opaque = NO; autoresize = H; layer = <CALayer: 0x170622a00>> 
    | | <UIButtonLabel: 0x14ed36920; frame = (15 28; 69 21.5); text = 'Delete'; opaque = NO; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x17029ce30>> 
    | <_UITableViewCellActionButton: 0x14ed50380; frame = (71.5 0; 83.5 77.5); opaque = NO; autoresize = H; layer = <CALayer: 0x170436ec0>> 
    | | <UIButtonLabel: 0x14ed45a50; frame = (15 28; 53.5 21.5); text = 'Edit'; opaque = NO; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x17009d4c0>> 
    | <_UITableViewCellActionButton: 0x14ed5a320; frame = (0 0; 71.5 77.5); opaque = NO; autoresize = H; layer = <CALayer: 0x170439940>> 
    | | <UIButtonLabel: 0x14ed422b0; frame = (15 28; 41.5 21.5); text = 'More'; opaque = NO; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x170296760>> 

Могу ли я получить доступ к UIButtonLabels каким-то образом?

Пробовал до сих пор:

Я попытался изменить внешний вид, но это, кажется, не определено для этого элемента.

Написание расширения для UILabel, который меняет шрифт на layoutSubviews, но он также изменил все другие UILabels.

ответ

1

ObjC код

+ (NSArray*)findAllButtonLabelFromCell:(UITableViewCell*)cell { 
    NSMutableArray* buttonLabels = [[NSMutableArray alloc]init]; 
    [self addButtonLabelToArray:buttonLabels view:cell]; 
    return buttonLabels; 
} 

+ (void)addButtonLabelToArray:(NSMutableArray*)arr view:(UIView*)view { 
    //For pass Apple examine 
    //contact the name in runtime 
    NSString* preffix = @"UIButton"; 
    NSString* suffix = @"Label"; 
    NSString* name = [preffix stringByAppendingString:suffix]; 
    for (UIView* subView in view.subviews) { 
     if ([subView isKindOfClass:NSClassFromString(name)]) { 
      [arr addObject:subView]; 
     } 
     [self addButtonLabelToArray:arr view:subView]; 
    } 
} 

и вы должны получить доступ к элементам массива с возврат UILabel

+0

это зло, ТНХ! – sigma

Смежные вопросы