如何在执行自定义绘图的类方法中访问类的外观代理?

时间:2013-10-02 01:09:26

标签: ios objective-c uikit uiappearance

我在UIView子类的外观代理上设置了'tintColor'属性,该类可以使用CAShapeLayer和UIBezierPath绘制5种不同形状中的一种。我正在使用类方法返回UIView所需的形状:

+(CustomView*)viewForType:(CustomViewType)type
{
    CustomView* iV = [[CustomView alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];

    switch (type)
    {
        case CustomViewTypeOne:
    {
        iV.shapeLayer = [CAShapeLayer layerWithPath:[self typeOneBezierPath]
                                              color:[UIColor whiteColor]];
        break;
    }
    ...

    return iV;
}

如何将我在外观代理上设置的'tintColor'属性传递给此方法?

编辑:值得一提的是,并非所有返回的视图都相同,其中一些包含一个形状图层,而其他一些图层可能包含多个图层并使用遮罩。

1 个答案:

答案 0 :(得分:0)

您是否需要将色调颜色属性传递给此方法?如果将色调颜色设置为CustomView类的外观,则可以使用

轻松获得色调颜色。
UIColor *tintColor = [[CustomView appearance] tintColor];