Ios 在另一个类中更新NSMutableAttributeString

Ios 在另一个类中更新NSMutableAttributeString,ios,nsmutableattributedstring,Ios,Nsmutableattributedstring,我有一个UIButton类,标题是NSMutableAttributeString(用于格式化)。 我现在想从我的vc类中更改按钮文本的标题颜色,因为它已被“选中” 我可以做的很好,作为一个正常的按钮标题。但是作为一个NSMutableAttributedString-没有骰子 一些问题/建议:由于自定义类视图已经是一个按钮-我的颜色更新是否应该在该类中发生-而不是从vc?只是告诉它在自定义类中更新和烘焙颜色 我是否公开按钮标题的NSMutableAttributeString属性,以便从VC访

我有一个UIButton类,标题是NSMutableAttributeString(用于格式化)。 我现在想从我的vc类中更改按钮文本的标题颜色,因为它已被“选中”

我可以做的很好,作为一个正常的按钮标题。但是作为一个NSMutableAttributedString-没有骰子

一些问题/建议:由于自定义类视图已经是一个按钮-我的颜色更新是否应该在该类中发生-而不是从vc?只是告诉它在自定义类中更新和烘焙颜色

我是否公开按钮标题的NSMutableAttributeString属性,以便从VC访问并更改颜色?这样,我也可以传递新的文本以及新的颜色

在我的CircleButton m文件中

NSMutableParagraphStyle *style = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
        [style setAlignment:NSTextAlignmentCenter];
        [style setLineBreakMode:NSLineBreakByWordWrapping];

        UIFont *font1 = [UIFont fontWithName:@"Futura" size:20.0f];
        NSDictionary *dict1 = @{NSUnderlineStyleAttributeName:@(NSUnderlineStyleNone),
                                NSFontAttributeName:font1,
                                NSForegroundColorAttributeName:textClr,
                                NSParagraphStyleAttributeName:style};

        attributedTText = [[NSAttributedString alloc] initWithString:btnTxt    attributes:dict1];
        [[button titleLabel] setNumberOfLines:0];
        [[button titleLabel] setLineBreakMode:NSLineBreakByWordWrapping];
        [button setAttributedTitle:attributedTText forState:UIControlStateNormal];
        [button setTitleColor:textClr forState:UIControlStateNormal];

设置按钮属性时的
forState:
参数不会被忽略,您知道。我实际上不会将按钮更改为selected-因此如果您指的是[button setTitleColor:textClr forState:UIControlStateSelected];这对我没有帮助。我只想根据需要更改文本。