0

我在 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”属性传递给此方法?

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

4

1 回答 1

0

您是否需要将 tint color 属性传递给此方法?如果将 tint color 设置为CustomViewclass 的外观,则可以轻松获取 tint color,使用

UIColor *tintColor = [[CustomView appearance] tintColor];
于 2013-10-02T01:43:59.987 回答