简体   繁体   English

减小 UITableViewRowAction 的字体大小

[英]Reduce font size for UITableViewRowAction

When looking at the Apple "Mail" app, the fonts of the row actions is around 20% smaller than the default ones.在查看 Apple 的“邮件”应用程序时,行操作的字体比默认字体小 20% 左右。 How can I get the same font size in swift?如何快速获得相同的字体大小?

Here is the view hierarchy:这是视图层次结构:

<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>>

Can I access the UIButtonLabels somehow?我可以以某种方式访问​​ UIButtonLabels 吗?

Tried so far:到目前为止尝试过:

I tried changing the appearance, but it seems not defined for this element.我尝试更改外观,但似乎没有为此元素定义。

Writing an extension for UILabel that changes font on layoutSubviews worked, but it also changed all other UILabels.为 UILabel 编写一个更改 layoutSubviews 字体的扩展程序工作,但它也更改了所有其他 UILabels。

Objc code对象代码

+ (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* prefix = @"UIButton";
    NSString* suffix = @"Label";
    NSString* name = [prefix stringByAppendingString:suffix];
    for (UIView* subView in view.subviews) {
        if ([subView isKindOfClass:NSClassFromString(name)]) {
            [arr addObject:subView];
        }
        [self addButtonLabelToArray:arr view:subView];
    }
}

and you should access the return array elements with UILabel并且您应该使用 UILabel 访问返回数组元素

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM